Activity生命週期

2021-06-23 09:52:45 字數 1921 閱讀 9693

activity生命週期中存在5中狀態:啟動,執行,暫停,停止,銷毀。

啟動:當activity被壓入棧頂,在螢幕前台,成為啟動狀態。

執行:activity啟動後便進入執行狀態,此時activity活的焦點,與使用者進行互動。

暫停:當activity失去焦點,但依然可見(如有另乙個非全屏或透明的activity正在執行),則這個activity處於暫停狀態。

停止:當activity被另乙個activity完全覆蓋掉,則進入停止狀態。

銷毀:當activity被系統結束或所在程序被系統殺掉,activity則處於銷毀狀態。

通過官方的activity狀態轉換圖能比較直觀的了解activity生命週期:

以下是activity生命週期的方法說明,參考

方法描述

其後能否銷毀

下一方法

oncreate()

當 activity 第一次建立時會被呼叫。在這個方法中你需要完成所有的正常靜態設定 ,比如建立乙個檢視( view )、繫結列表的資料等等。如果能捕獲到 activity 狀態的話,這個方法傳遞進來的 bundle 物件將存放了 activity 當前的狀態。呼叫該方法後一般會呼叫 onstart() 方法。

onstart()

onrestart()

在 activity 被停止後重新啟動時會呼叫該方法。其後續會呼叫 onstart 方法。

onstart()

onstart()

當 activity 對於使用者可見前即呼叫這個方法。如果 activity回到前台則接著呼叫 onresume() ,如果 activity 隱藏則呼叫onstop() (好像有點問題,怎麼會是呼叫 onstop 呢?? @sam )。

onresume()

oronstop()

onresume()

在 activity 開始與使用者互動前呼叫該方法。在這時該 activity處於 activity 棧的頂部,並且接受使用者的輸入。其後續會呼叫onpause() 方法。

onpause()

onpause()

在系統準備開始恢復其它 activity 時會呼叫該方法。這個方法中通常用來提交一些還沒儲存的更改到持久資料 中,停止一些動畫或其它一些耗 cpu 的操作等等。無論在該方法裡面進行任何操作,都需要較快速完成,因為如果它不返回的話,下乙個activity 將無法恢復出來。如果 activity 返回到前台將會呼叫onresume() ,如果 activity 變得對使用者不可見了將會呼叫onstop() 。

onresume()

oronstop()

onstop()

在 activity 對使用者不可見時將呼叫該方法。可能會因為當前activity 正在被銷毀,或另乙個 activity (已經存在的 activity 或新的 activity )已經恢復了正準備覆蓋它,而呼叫該方法。如果activity 正準備返回與使用者互動時後續會呼叫 onrestart ,如果activity 正在被釋放則會呼叫 ondestroy 。

onrestart()

orondestroy()

ondestroy()

在 activity 被銷毀前會呼叫該方法。這是 activity 能接收到的最後乙個呼叫。可能會因為有人呼叫了 finish 方法使得當前activity 正在關閉,或系統為了保護記憶體臨時釋放這個 activity 的例項,而呼叫該方法。你可以用 isfinishing 方法來區分這兩種不同的情況。是沒有

Activity生命週期

oncreate 設定activity所使用的布局檔案 按鈕繫結 等靜態設定操作 onstart 該activity能被我們看到的時候就會呼叫onstart onresume 能夠獲得使用者焦點 onpause 啟動另外乙個activity的時候就會呼叫第乙個activity的該方法 onstop ...

activity生命週期

乙個activity的啟動順序 oncreate onstart onresume 當另乙個activity啟動時 第乙個activity onpause 第二個activity oncreate onstart onresume 第乙個activity onstop 當返回到第乙個activity...

Activity 生命週期

activities 在系統中是以 activity 棧的形式被管理的。當乙個新的 activity 啟動時,它將會被放到棧的頂部並變成 running activity 上乙個activity 會被至於它的下面,在新 activity 存在期間它都不會到前端來。乙個 activity 有四個重要的...