今天写了一个Demo,来测试了一下ActivityGroup和Activity的生命周期。
其实,Activity的生命周期已经没什么好说的了,这要是Android入了门的都应该知道。主要是ActivityGroup的生命周期以及ActivityGroup和Activity并存的时候生命周期的改变。
ActivityGroup的生命周期的方法就onCreat()、onResume()、onPause()、onStop()、onDestroy()5个方法,运行顺序和Activity的相同。
我创建了一个ActivityGroup和3个Activity(A、B、C)。程序运行后,首先执行的是Group的onCreat、onStart、onResume方法,由于3个Activity全部通过onClick事件来调用的,所以,接下来就是点击那个控件,就跳到相应的Activity,并且执行当前Activity的onCreat、onStart、onResume方法。
当点击其他控件做跳转的时候,执行上一个Activity的onPause方法和当前Activity的onCreat和onResume方法,但是,不会执行上一个Activity的onStop方法(Intent直接跳转Activity的话,执行完新的Activity的onCreat和onResume方法后,会执行旧Activity的onStop方法)。
比如说先点击跳转到A,再切换到B,正如上文说的执行。但是,接下来当我从B再回到A的时候,程序会先执行原来的A 的onStop和onDestroy方法。然后在执行A的onCreat、onStart、onResume方法(一般的Intent回上一个Activity的时候,并不会把原来的onDestroy再新建一个的)。
整个Group在Activity的切换过程中不受任何影响。
当点击返回按钮的时候,所执行的并不是Activity回到上一个Activity,而是退出了整个的ActivityGroup。执行顺序为:
1、 执行当前Activity和ActivityGroup的onPause方法。
2、 执行当前已经创建过的所有Activity和ActivityGroup的onStop(先Activity的onStop方法)。
3、 执行当前已经创建过的所有Activity和ActivityGroup的onDestroy(先Activity的onDestroy方法)。