天天看點

Activity啟動模式和生命周期實測結果

面試的時候經常被面試官官問到activity的生命周期問題,而我們平常又是隻簡單了解那幾種常見的,而面試官一邊都是問比較奇葩的情況的生命周期,故自己寫了個demo,認真檢測一下真實的情況結果(最尴尬的就是面試官說,回去試一試)

Activity啟動模式和生命周期實測結果

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()

Activity啟動模式和生命周期實測結果

2、啟動->home桌面->再打開app(沒被殺死的情況下):

onCreat()->onStart()->onResume()->onPause()->onStop()->onRestart()->onStart()->onResume()

Activity啟動模式和生命周期實測結果

singleTop模式

一、 正常情況下啟動一個activity,其生命周期:(Activity_B做測試)

1、啟動->back鍵傳回的情況:結果同standard模式

2、啟動->home桌面->再打開app(沒被殺死的情況下):結果同standard模式

3、頂部已經有,再次啟動自己的情況:

onCreat()->onStart()->onResume()->onPause()->onNewIntent()->onResume()->onPause()->onStop()->onDestroy()

Activity啟動模式和生命周期實測結果
4.棧中已經有,但是不是在頂部的情況:
Activity啟動模式和生命周期實測結果

singleTask模式

一、 正常情況下啟動一個activity,其生命周期:(Activity_B做測試)

1、啟動->back鍵傳回的情況:結果同standard模式

2、啟動->home桌面->再打開app(沒被殺死的情況下):結果同standard模式

3、頂部已經有,再次啟動自己的情況:結果同singleTop模式

4.棧中已經有,但是不是在頂部的情況:

Activity啟動模式和生命周期實測結果

singleInstance模式

一、 正常情況下啟動一個activity,其生命周期:(Activity_B做測試)

1、啟動->back鍵傳回的情況:結果同standard模式

2、啟動->home桌面->再打開app(沒被殺死的情況下):結果同standard模式

3、頂部已經有,再次啟動自己的情況:結果同singleTop模式

4.棧中已經有,但是不是在頂部的情況:結果同singleTask模式

Activity A啟動B 然後傳回A A和B的生命周期變化情況(順序)

Activity啟動模式和生命周期實測結果

繼續閱讀