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

1.4_Android Training 学习笔记_管理 Activity 的生命周期

2016-09-19 15:20 441 查看

启动与销毁 Activity

不同于其他编程范式(程序从 main() 方法开始启动),Android 系统根据生命周期的不同阶段唤起对应的回调函数来执行代码。系统存在启动与销毁一个 activity 的一套有序的回调函数。

PS 发现谷歌官网有些教程也翻译了。棒!



如果未对您的Activity之一声明 MAIN 操作或 LAUNCHER 类别,那么您的应用图标将不会出现在应用的主屏幕列表中。

当Activity的第一个生命周期回调是 onCreate() 时,它最近的回调是 onDestroy()。系统会对您的Activity调用此方法,作为您的Activity实例完全从系统内存删除的最终信号。

大多数应用不需要实现此方法,因为本地类引用与Activity一同销毁,并且您的Activity应在 onPause() 和 onStop() 期间执行大多数清理操作。 但是,如果您的Activity包含您在 onCreate() 期间创建的后台线程或其他如若未正确关闭可能导致内存泄露的长期运行资源,您应在 onDestroy() 期间终止它们。

注意:在所有情况下,系统在调用 onPause() 和 onStop() 之后都会调用 onDestroy() ,只有一个例外:当您从 onCreate() 方法内调用 finish() 时。在有些情况下,比如当您的Activity作为临时决策工具运行以启动另一个Activity时,您可从 onCreate() 内调用 finish() 来销毁Activity。 在这种情况下,系统会立刻调用 onDestroy(),而不调用任何其他 生命周期方法。


暂停和继续 Activity

当您的Activity进入暂停状态时,系统会对您的 Activity 调用 onPause() 方法,通过该方法,您可以停止不应在暂停时继续的进行之中的操作(比如视频)或保留任何应该永久保存的信息,以防用户坚持离开应用。如果用户从暂停状态返回到您的Activity,系统会重新开始该Activity并调用 onResume() 方法。

以防用户坚持离开应用 想的真细致

onPause() 中避免执行 CPU 密集型工作,因为启动下一个 Activity 时,会先执行上一个 Activity 的 onPause() 再执行下一个 Activity 的 onResume() 。

Note: 为了使Android系统能够恢复Activity中的View的状态,每个View都必须有一个唯一ID,由android:id定义。

Caution: 必须要调用 onSaveInstanceState() 方法的父类实现,这样默认的父类实现才能保存视图状态的信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android