合理应用activity的生命周期优化程序内存

来源:互联网 发布:sql语言有哪些方法 编辑:程序博客网 时间:2024/06/11 23:03

activity的四种状态

运行状态:可和用户交互
暂停状态:部分被覆盖
停止状态:全部被覆盖
销毁状态:该activity结合苏,或activity所在的dalvik进程被结束

涉及的函数:

onCreate
onStart
onRestart
onStart
onPause
onStop
onDestory

运行状态分析:

一个 Activity从被创建到被销毁的过程执行了哪些方法:

  • 一个Activity正常的显示出来:执行了 - onCreate(),onStart(),onResume()方法,执行完onResume方法后,一个activity就可以正常显示出来了。

  • 退出一个Activity:执行了onPause(),onStop(),onDestroy()

停止状态分析:

以MainActivity被OtherActivity完全覆盖住为例,也就是从mainactivity启动了OtherActivity:

  • 从MainActivity转到OtherActivity:MainActivity先执行onPause(),然后OtherActivity执行onCreate(),onStart(),onResume()显示出来,然后MainActivity执行onStop(),进入了停止状态。

  • 按back键从OtherActivity回到MainActivity:OtherActivity先执行onPause(),然后MainActivity执行onRestart(),onStart(),onResume(),mainactivity显示出来。然后OtherActivity执行onStop(),onDestroy()。

暂停状态分析:

MainActivity部分被OtherActivity覆盖住

  • 从MainActivity转到OtherActivity:MainActivity先执行onPause(),然后OtherActivity执行 onCreate(),onStart(),onResume(),MainActivity进入了暂停状态。
  • 从OtherActivity回到MainActivity:OtherActivity先执行onPause(),然后MainActivity执行onResume(),然后OtherActivity执行onStop(),onDestroy()方法。

HOME键的执行顺序:onPause->onStop->onRestart->onStart->onResume

BACK键的顺序: onPause->onStop->onDestroy->onCreate->onStart->onResume

onPause不要做太耗时的工作

上下文菜单,dialog等不会对activity的生命周期造成影响。因为他们是activity产生出来的。

启动和退出Dialog时,Activity的状态始终未变,可见,Dialog实际上属于Acitivity内部的界面,不会影响Acitivty的生命周期。

此外,对于不同的启动模式或Intent Flags或操作行为(如横竖屏切换)等有可能会影响到Activity生命周期

综述:

  如果我们熟练的掌握了,activity的生命周期,就可以选择性的覆盖指定的方法,这样可以优化我们的程序内存~

更多了解:

Android总结篇系列:Activity Intent Flags及Task相关属性
http://www.cnblogs.com/lwbqqyumidi/p/3775479.html

Android总结篇系列:Activity启动模式(lauchMode)
http://www.cnblogs.com/lwbqqyumidi/p/3771542.html

Android总结篇系列:Activity生命周期
http://www.cnblogs.com/lwbqqyumidi/p/3769113.html

Activity的生命周期,BACK键和HOME键生命周期
http://www.cnblogs.com/zyw-205520/p/3313268.html

0 0
原创粉丝点击