今天寫了一個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方法)。