activities 在系統中是以 activity 棧的形式被管理的。當乙個新的 activity 啟動時,它將會被放到棧的頂部並變成 running activity——上乙個activity 會被至於它的下面,在新 activity 存在期間它都不會到前端來。
乙個 activity 有四個重要的狀態:
如果乙個 activity 在螢幕前端(在棧的頂部),它處於activie或是running 狀態。
如果乙個 activity 失去焦點,但是還可見(乙個新的非全屏的或透明的 activity 獲得焦點並處於該activity 的上部),它處於 paused 狀態。乙個處於暫停狀態的 activity 是完全存活的(它保持者所有的狀態和成員資訊,並且和window管理器保持聯絡),但是能夠在系統記憶體極端匱乏時被系統銷毀。
如果乙個activity完全被另外乙個activity覆蓋,它會進入 stopped 狀態。它仍然儲存著所有狀態和成員資訊,但是不再對使用者可見,所以它的視窗被隱藏並可能在任何系統記憶體不足的時候被銷毀。
如果乙個 activity 處於 paused或 stopped
狀態,系統可以要求它終止以釋放它占有的記憶體區域,或直接殺死它所處的程序。當它再次展現給使用者的時候,必須完全重啟並重置到之前的狀態。
下圖表示了activity的生命週期:
乙個activity的整個生命週期處於第一次呼叫 oncreate(bundle)和呼叫 ondestroy()
乙個 activity 的可見生命週期從一次呼叫 onstart()開始直到對應地呼叫 onstop()
結束。在此期間,使用者可以在螢幕上看到該activity,雖然它可能並不在前台並和使用者互動。在這兩個方法之間,你可以保持需要展示該activity給使用者所需的資源。
乙個activity 的前台生命週期在一次呼叫 onresume()到對應地呼叫 onpause()
期間。在此期間該 activity 處於其他所有 activity 的前面並且和使用者互動。
activity的生命週期方法:
activity 的整個生命週期被以下方法定義。你可以覆寫這些方法,以便在activity狀態改變的時候執行你需要的工作。所有的activity都需要實現oncreate(bundle)
方法來進行初始設定;可能還需要實現
onpause()
方法以便在activity
退出與使用者互動前儲存使用者改變的資料。
在實現這些方法時需要呼叫父類的實現。
public
class
activity
extends
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生命週期
前言 四大應用程式元件中activity是最常用的,也是必須掌握的乙個元件。這裡分幾章梳理歸納一些實用的知識點與大家分享。宣告 農民伯伯 正文 一 配圖及說明 activity主要的三種狀態 running 執行 在螢幕前台 位於當前任務堆疊的頂部 paused 暫停 失去焦點但仍然對使用者可見 覆...