1、Activity生命周期
这个问题网上有很多答案都差不多,我这里记录的是来自《深入解析Android5.0系统里的说法》
首先我们需要理解Activity生命周期图中隐含的Activity运行时的3种状态:
1、激活态:当启动的activity位于屏幕的最前端,接收用户的输入,这种状态叫做激活态。
2、暂停态:当Activity被另一个透明或半透明的activity覆盖时所处的状态,此时activity虽然已经不能接收用户的输入,但还是可见的,就称此时的状态为暂停态。
3、停止态:当一个Activity被另一个Activity覆盖,不能接收用户的输入也不可见时称之为停止态。
注意化下划线的地方。暂停态是被另一个Activity覆盖时进入的状态。很多地方写dialog会使Activity进入onPause,这是只有dialog开启了新的activity才会发生。
当一个Activity对象的状态发生变化的时候,会调用以下7个抽象接口:
onCreate:当Activity被创建时调用
onStart:当Activity在Framework中的数据接口准备完毕后调用
onResume:当Activity来到栈最前端变成激活态时调用
onPause:当Activity从栈的最前端切换到后台时,进入暂停态
onStop:当Activity完全不可见,调用onStop(注意,切换到多任务切换界面时,会执行当前Activity的 onPause->onStop)
onDestroy:当内存不足完全清除Activity时调用
onRestart:onStop状态的Activity重新回到栈顶,进入激活态时,首先进入onRestart,然后onStart.