面試的時候經常被面試官官問到activity的生命周期問題,而我們平常又是隻簡單了解那幾種常見的,而面試官一邊都是問比較奇葩的情況的生命周期,故自己寫了個demo,認真檢測一下真實的情況結果(最尴尬的就是面試官說,回去試一試)
Activity啟動模式
standard:怎麼樣都要建立(預設啟動模式)
singleTop:頂上不是target Activity,new一個
singleTask:頂上不是target Activity,移除target之上的,把自己變成top。
singleInstance:開辟私有的task,完全獨立于程式的其他activity的task。
standard模式
一、 正常情況下啟動一個activity,其生命周期:(Activity_A做測試)
1、啟動->back鍵傳回的情況:
onCreat()->onStart()->onResume()->onPause()->onStop()->onDestroy()
2、啟動->home桌面->再打開app(沒被殺死的情況下):
onCreat()->onStart()->onResume()->onPause()->onStop()->onRestart()->onStart()->onResume()
singleTop模式
一、 正常情況下啟動一個activity,其生命周期:(Activity_B做測試)
1、啟動->back鍵傳回的情況:結果同standard模式
2、啟動->home桌面->再打開app(沒被殺死的情況下):結果同standard模式
3、頂部已經有,再次啟動自己的情況:
onCreat()->onStart()->onResume()->onPause()->onNewIntent()->onResume()->onPause()->onStop()->onDestroy()
4.棧中已經有,但是不是在頂部的情況:
singleTask模式
一、 正常情況下啟動一個activity,其生命周期:(Activity_B做測試)
1、啟動->back鍵傳回的情況:結果同standard模式
2、啟動->home桌面->再打開app(沒被殺死的情況下):結果同standard模式
3、頂部已經有,再次啟動自己的情況:結果同singleTop模式
4.棧中已經有,但是不是在頂部的情況:
singleInstance模式
一、 正常情況下啟動一個activity,其生命周期:(Activity_B做測試)
1、啟動->back鍵傳回的情況:結果同standard模式
2、啟動->home桌面->再打開app(沒被殺死的情況下):結果同standard模式
3、頂部已經有,再次啟動自己的情況:結果同singleTop模式
4.棧中已經有,但是不是在頂部的情況:結果同singleTask模式