Activity生命周期解说

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Activity生命周期解说

二、事件方法链

2.1进入Activity

onCreate -> onStart -> onResume

2.2BACK键

onPause->onStop->onDestroy

2.3HOME键

Home键退出:onPause->onStop

Home键回来:onRestart -> onStart->onResume

2.4休眠/恢复

休眠:onPause

恢复:onResume

2.5旋转屏幕

未设置android:configChanges:

onPause -> onStop -> onDestory -> onCreate -> onStart -> onResume

设置了android:configChanges="orientation|keyboardHidden":

不会触发生命周期方法,参见文章这里。

2.6来电

来电,显示来电界面:

onPause -> onStop

关闭电话界面,重新回到当前Activity:

onRestart -> onStart->onResume

2.7其他Activity

进入下一个Activity:

onPause -> onStop

从其他Activity返回至当前Acitivity:

onRestart -> onStart->onResume

三、与Activity生命周期结合的应用场景

3.1与广播(Broadcast)结合

在onResume注册广播(registerLinstener),在onPause注销广播(unregisterLinstener)。例如:

做"摇一摇"功能(传感器)、监听网络变化,就可以在onResume中注册监听,在onPause里注销掉,已节省资源提高效率。

3.2与服务(Service)结合

在onStart绑定服务(bindService),在onStop中取消绑定(unbindService)。例如:

需要通过Service定时更新UI上的数据,而Activity的可见周期在onStart与onStop 之间,那么就可以再onStart时启动服务,在onStop时停止服务。为了节约系统资源,除了提高用户体验以外,开发人员应尽可能的优化程序。

3.3与Cursor结合

使用managedQuery让Activity帮你管理Cursor的生命周期,不用自己去close。但也有一些问题,补充两篇文章:这里1、这里2。

3.4释放资源

可以在onDestory中释放一些资源。比如可以在onDestory时调用MediaPlayer的release。

四、注意

4.1所有Activity生命周期方法的实现都必须先调用其父类版本。

4.2由于Activity经常会暂停和恢复之间切换,所以onResume和onPause这两个方法应当是轻量级的。

4.3在系统再某种紧急情况下需要回收内存,onStop、onDestory可能不会被调用,因此需要在onPause中把需要长期保存的数据保存起来。

相关文档
最新文档