android.content.Context -> android.app.ApplicationContext ->android..."/>
您好,登錄后才能下訂單哦!
activity類處于android.app包中,繼承體系如下: java.lang.Object -> android.content.Context -> android.app.ApplicationContext ->android.app.Activity
4大狀態(tài):
Running狀態(tài):一個新的Activity啟動入棧后,它在屏幕最前端,處于棧的最頂端,此時它處于可見并可和用戶交互的激活狀態(tài)。 Paused狀態(tài):當(dāng)Activity被另一個透明或者Dialog樣式的Activity覆蓋時的狀態(tài)。此時它依然與窗口管理器保持連接,系統(tǒng)繼續(xù)維護其內(nèi)部狀態(tài),它仍然可見,但它已經(jīng)失去了焦點,故不可與用戶交互。 Stopped狀態(tài):當(dāng)Activity不可見時,Activity處于Stopped狀態(tài)。當(dāng)Activity處于此狀態(tài)時,一定要保存當(dāng)前數(shù)據(jù)和當(dāng)前的UI狀態(tài),否則一旦Activity退出或關(guān)閉時,當(dāng)前的數(shù)據(jù)和UI狀態(tài)就丟失了。 Killed狀態(tài):Activity被殺掉以后或者被啟動以前,處于Killed狀態(tài)。這是Activity已從Activity堆棧中移除,需要重新啟動才可以顯示和使用。
其中,Running狀態(tài)和Paused狀態(tài)是可見的,Stopped狀態(tài)和Killed狀態(tài)時不可見的。
七大生命周期函數(shù):
1.onCreate() // 在Activity生命周期開始時被調(diào)用
2.onRestart() //當(dāng)activity從停止?fàn)顟B(tài)重新啟動時調(diào)用
3.onStart() //當(dāng)activity對用戶即將可見的時候調(diào)用。
4.onResume() //當(dāng)activity將要與用戶交互時調(diào)用此方法,此時activity在activity棧的棧頂,用戶輸入已經(jīng) 可以傳遞給它
5.onPause()// 當(dāng)系統(tǒng)要啟動一個其他的activity時調(diào)用(其他的activity顯示之前),這個方法被用來提交那些持久數(shù)據(jù)的改變、停止動畫、和其他占用CPU資源的東西。由于下一個activity在這個方法返回之前不會resumed,所以實現(xiàn)這個方法時代碼執(zhí)行要盡可能快。
6.onStop()// 當(dāng)另外一個activity恢復(fù)并遮蓋住此activity,導(dǎo)致其對用戶不再可見時調(diào)用。一個新activity啟動、其它activity被切換至前景、當(dāng)前activity被銷毀時都會發(fā)生這種場景。
7.onDestroy() // 在activity被銷毀前所調(diào)用的最后一個方法,當(dāng)進程終止時會出現(xiàn)這種情況
如圖:
幾個特殊需要注意生命周期示例
1.父Activity啟動子Activity,子Actvity退出,父Activity調(diào)用順序如下
onCreate() -> A
onStart() -> A
onResume() ->A
onFreeze() -> A
onPause() -> A
onCreate() -> B
onStart() -> B
onResume() ->B
onStop() -> A (A OnStop是在B”可操作”后執(zhí)行)
onDestory ->A (Maybe)
2.用戶點擊Home,Actvity調(diào)用順序如下
onCreate()
onStart()
onResume()
onFreeze()
onPause()
onStop() — Maybe
onDestroy() – Maybe
3.在父Activity上顯示透明的或非全屏的activity,Activity調(diào)用順序如下:
onCreate()
onStart()
onResume()
onFreeze()
onPause()
4.設(shè)備進入睡眠狀態(tài),Activity調(diào)用順序如下:
onCreate()
onStart()
onResume()
onFreeze()
onPause()
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。