前言
Activity的生命周期是Android中的基础。在用户使用App的过程中,Activity在各个状态中不停转换。
从onCreate()
开始,中间经过一定的状态变换,直到onDestroy()
结束,是Activity的一个完整的生命周期。
onCreate()
在系统首次创建Activity时调用,Activity在创建后进入已创建状态。
通常在此方法中进行一些初始化工作。
onStart()
执行完onCreate()
方法后,Activity进入已开始状态,开始执行onStart()
。
此时Activity对用户可见。此方法一般会比较快完成。
onResume()
接下来就是onResume()
,Activity处于已恢复状态,正在与用户进行交互。
应用会一直保持这种状态,直到某些事件发生,让焦点远离应用。此类事件包括接到来电、用户导航到另一个 Activity,或设备屏幕关闭。在这个状态可以使用要求生命周期组件可见,且需要在前台的功能,如调用摄像头。
当发生中断事件时,Activity进入已暂停状态,系统调用 onPause()
回调。
onPause()
此时Activity不再位于前台,进入已暂停状态。
此方法应该很简单,不应该在这里进行一些消耗资源的操作。
如果接下来Activity回到前台,会调用onResume()
。
onStop()
此时Activity不再可见,进入已停止状态。
在onStop()
方法中,应用应释放或调整应用对用户不可见时的无用资源。例如,应用可以暂停动画效果,或从细粒度位置更新切换到粗粒度位置更新。 还应该使用onStop()
执行 CPU 相对密集的关闭操作。
onDestroy()
在销毁Activity之前,调用此方法。
有两种情况:
- 用户将要结束Activity或系统调用
finish()
。onDestroy()
将是最后一个生命周期回调; - 配置发生改变。接着系统会立即新建Activity实例,调用其
onCreate()
。
在onDestroy()
时,应该进行一些释放资源的操作。
更多
当Activity处于同一个进程(应用)中,一个Activity A启动另一个Activity B时,会
- Activity A执行
onPause()
; - Activity B执行
onCreate()
、onStart()
、onResume()
; - Activity A如果完全不可见,将执行
onStop()
。
参考
待
2020-3-2 21:36