当另一个
Activity 启动时:
第一个
Activity onPause()——>第二个 Activity onCreate()——>onStart()——
>onResume()
——>第一个 Activity onStop()
当返回到第一个
Activity 时:
第二个
Activity onPause() ——> 第一个 Activity onRestart()——>onStart()——
>onResume()
——>第二个 Activity onStop()——>onDestroy()
一个
Activity 的销毁顺序:
(情况一)
onPause()——><Process Killed>
(情况二)
onPause()——>onStop()——><Process Killed>
(情况三)
onPause()——>onStop()——>onDestroy()
每一个活动(
Activity )都处于某一个状态,对于开发者来说,是无法控制其应用程序处于
某一个状态的,这些均由系统来完成。
但是当一个活动的状态发生改变的时候,开发者可以通过调用
onXX() 的方法获取到相关的
通知信息。
在实现
Activity 类的时候,通过覆盖( override )这些方法即可在你需要处理的时候来调
用。
一、 onCreate :当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化
工作。
onCreate 方法有一个参数,该参数可以为空( null ),也可以是之前调用
onSaveInstanceState ()方法保存的状态信息。
二、 onStart :该方法的触发表示所属活动将被展现给用户。
三、 onResume :当一个活动和用户发生交互的时候,触发该方法。
四、 onPause :当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运
行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。
五、 onStop :当一个活动不再需要展示给用户的时候,触发该方法。如果内存紧张,系
统会直接结束这个活动,而不会触发
onStop 方法。 所以保存状态信息是应该在 onPause 时做,
而不是
onStop 时做。活动如果没有在前台运行,都将被停止或者 Linux 管理进程为了给新的活
动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必
须时刻牢记这一原则。在一些情况下,
onPause 方法或许是活动触发的最后的方法,因此开发者
需要在这个时候保存需要保存的信息。
六、onRestart :当处于停止状态的活动需要再次展现给用户的时候,触发该方法。
七、 onDestroy :当活动销毁的时候,触发该方法。和 onStop 方法一样,如果内存紧
张,系统会直接结束这个活动而不会触发该方法。