Android艺术|Activity的生命周期
作者:互联网
《Android开发艺术探索》系列笔记
Activity生命周期(典型情况)
onCreate():
Activity 正在创建
初始化,如setContentView界面资源、初始化数据
onStart():
正在启动,可见但不在前台,无法和用户交互。
onResume():
获得焦点,可见且在前台并开始活动。
onPause():
正在停止,可做数据存储、停止动画等操作。
onStop():
即将停止,可做稍微重量级回收工作,如取消网络连接、注销广播接收器等。
onDestroy():
即将销毁,做回收工作、资源释放。
onRestart():
重新启动,Activity由后台切换到前台,由不可见到可见。
启动一个Activity:
onCreate()–>onStart()–>onResume()
打开另一个Activity:
旧Activity的onPause() -->新Activity的onCreate()–>onStart()–>onResume()–>旧Activity的onStop()
返回到旧Activity:
新Activity的onPause()–>旧Activity的onRestart()–>onStart()–>onResume()–>新Activity的onStop()–>onDestory();
Activity生命周期(异常情况)
-
异常情况下Activity 重建,非用户主动去销毁
由于资源相关配置发生改变,导致Activity被杀死和重新创建
如:旋转屏幕
onSaveInstanceState和onRestoreInstanceState
onSaveInstanceState(Activity即将被销毁并且有机会重新显示的情况下才会去调用它)
系统异常终止时,调用onSavaInstanceState来保存状态。该方法调用在onStop之前,但和onPause没有时序关系。
调用onRestoreInstanceState(该方法在onStart之后),并将onSavaInstanceState保存的Bundle对象作为参数传到onRestoreInstanceState与onCreate方法。
如果不想让Activity在旋转屏幕的时候重新创建,则可以在configChanges属性中添加orientation:
系统配置中所含的项目是非常多的,常用的有locale、orientation和keyboardHidden -
由于系统资源不足,导致优先级低的Activity被回收
优先级:
前台可见Activity(正在交互)>前台可见不可交互Activity(比如弹出对话框) >后台
如果一个进程没有四大组件在执行,那么这个进程将很快被系统杀死。(可以将后台工作放入Service中从而保证进程有一定的优先级)
标签:onResume,生命周期,onStart,onPause,onStop,Activity,Android,onCreate 来源: https://blog.csdn.net/LJY_Qt/article/details/89228345