Android Activity 生命周期
官网生命周期图如下:
下面介绍一种比较常见的情况:
两个Activity,一个A一个B,这两个Activity都复写了所有声明周期方法并在方法中输出A/B+生命周期函数名。A中有一个按钮可以启动B。
情况1:
A启动,通过A中的按钮B启动:
A onCreate -> A onStart -> A onResume -> A onPause -> B onCreate -> B onStart -> B onResume -> A onStop -> B ...
也就是说,A启动B时,在A onPause方法执行时,B的所有初始化方法都会执行,在B的这些方法执行完毕后,A onStop才会执行。
情况2:
情况1是在B不透明,A不可见的条件下的一种情况,那么同样的操作,如果B是透明比如以对话框的形式来呈现,并没有完全遮住A,则是:
A onCreate -> A onStart -> A onResume -> A onPause -> B onCreate -> B onStart -> B onResume -> B onPause -> A onResume -> B onStop - > B onDestory -> A...
也就是说,在B关闭的时候,会先执行B onPause再让A复原,因为A没有Stop掉,所以直接Resume,最后B onStop、B Destroy。
-----------------------------------------------------
Github:
https://github.com/RainFool