Activity 生命周期可以說是Android 知識(shí)當(dāng)中相當(dāng)基礎(chǔ)的知識(shí)點(diǎn)了影晓。我提筆寫一下迅耘,主要是自己來復(fù)習(xí)一下廊酣。歡迎大家和我一起學(xué)習(xí)交流
Android 的生命周期其實(shí)一張圖就可以一目了然拇厢。
onCreate()
當(dāng)一個(gè)被啟動(dòng)簸淀,并且創(chuàng)建新的實(shí)例的時(shí)候,MainThread (主線程)會(huì)調(diào)用這個(gè)方法
這個(gè)方法具有的特點(diǎn):
1.主線程當(dāng)中運(yùn)行
2.一個(gè)Activity 實(shí)例只會(huì)調(diào)用一次這個(gè)方法
這樣的設(shè)計(jì)非常適合在Android 當(dāng)中進(jìn)行一些初始化的操作委可。
onStart
調(diào)用 onStart ()的路徑有兩個(gè)
1.第一次啟動(dòng)
- Activity onStop 之后渊跋,用戶重新回到Activity
onResume
調(diào)用 onResume 的路徑有三個(gè)
1.第一次啟動(dòng)之后
- 調(diào)用onPause 之后,用戶回到Activity
- 調(diào)用onStop 之后着倾,用戶回到Acitvity
onPause
當(dāng)Activity 失去焦點(diǎn)拾酝,但是仍然可見的時(shí)候,onPause 會(huì)被調(diào)用
onStop
當(dāng)Activity 徹底被另外的Activity 覆蓋的時(shí)候(完全不可見的時(shí)候),會(huì)被調(diào)用卡者。
onRestart()
onStop 被調(diào)用后蒿囤,activity 返回前臺(tái)。
onDestroy
當(dāng)Activity被finish 或者被系統(tǒng)終止的時(shí)候崇决,這個(gè)方法會(huì)被調(diào)用材诽。
這個(gè)方法被調(diào)用后Activity 的生命周期就結(jié)束了。
看它生命周期的方法的設(shè)計(jì)恒傻,我發(fā)現(xiàn)有一下的特點(diǎn):
每個(gè)“停滯”方法都有一個(gè)“啟動(dòng)”方法對(duì)應(yīng)
onPause ---onResume
onStop --- onStart
onDestroy --- onCreate
我覺的這樣的設(shè)計(jì)脸侥,其實(shí)增加了Activity 管理的靈活性。對(duì)于不同的“停滯”可以進(jìn)行不同的“恢復(fù)”處理盈厘。這種一一對(duì)應(yīng)的關(guān)系睁枕,處理不同的問題也是更加的清晰,責(zé)任更加的明確。提供生命周期的回調(diào)方法譬重,開發(fā)者可以實(shí)現(xiàn)生命周期變更事拒逮,Activity 應(yīng)該進(jìn)行的響應(yīng),也是增加的Activity的可擴(kuò)展性
根據(jù)官方文檔的說明臀规。Activity 其實(shí)是分為3個(gè)層次的生命周期
- entire lifetime : onCreate()~onDestroy()
2.visible lifetiem : onStart()~onStop() - forground lifetime : onResume()~onPause()