android.content.Context  -> android.app.ApplicationContext ->android..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android基礎(chǔ)(一) - Activity生命周期

發(fā)布時間:2020-07-06 01:03:08 來源:網(wǎng)絡(luò) 閱讀:1701 作者:lm8751 欄目:移動開發(fā)


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)這種情況

 

 

如圖:

 

 

Android基礎(chǔ)(一)  - Activity生命周期

 

 

幾個特殊需要注意生命周期示例

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


向AI問一下細節(jié)

免責(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)容。

AI