Activity 生命周期可以说是Android 知识当中相当基础的知识点了。我提笔写一下,主要是自己来复习一下。欢迎大家和我一起学习交流
Android 的生命周期其实一张图就可以一目了然。
onCreate()
当一个被启动,并且创建新的实例的时候,MainThread (主线程)会调用这个方法
这个方法具有的特点:
1.主线程当中运行
2.一个Activity 实例只会调用一次这个方法
这样的设计非常适合在Android 当中进行一些初始化的操作。
onStart
调用 onStart ()的路径有两个
1.第一次启动
- Activity onStop 之后,用户重新回到Activity
onResume
调用 onResume 的路径有三个
1.第一次启动之后
- 调用onPause 之后,用户回到Activity
- 调用onStop 之后,用户回到Acitvity
onPause
当Activity 失去焦点,但是仍然可见的时候,onPause 会被调用
onStop
当Activity 彻底被另外的Activity 覆盖的时候(完全不可见的时候),会被调用。
onRestart()
onStop 被调用后,activity 返回前台。
onDestroy
当Activity被finish 或者被系统终止的时候,这个方法会被调用。
这个方法被调用后Activity 的生命周期就结束了。
看它生命周期的方法的设计,我发现有一下的特点:
每个“停滞”方法都有一个“启动”方法对应
onPause ---onResume
onStop --- onStart
onDestroy --- onCreate
我觉的这样的设计,其实增加了Activity 管理的灵活性。对于不同的“停滞”可以进行不同的“恢复”处理。这种一一对应的关系,处理不同的问题也是更加的清晰,责任更加的明确。提供生命周期的回调方法,开发者可以实现生命周期变更事,Activity 应该进行的响应,也是增加的Activity的可扩展性
根据官方文档的说明。Activity 其实是分为3个层次的生命周期
- entire lifetime : onCreate()~onDestroy()
2.visible lifetiem : onStart()~onStop() - forground lifetime : onResume()~onPause()