您的位置:首页 > 移动开发 > Android开发

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

2016-07-26 15:27 423 查看

转载至:http://blog.csdn.net/a910626/article/details/45459589

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息