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
原文地址:https://www.cnblogs.com/RainFool/p/4525585.html