最近學習了activity的生命週期,下面通過乙個小例子來更好的理解一下activity的生命週期。
階段1::實現如下圖所示的介面
此時按下home鍵,再次啟動activitydemo應用程式,觀察一下edittext中還有沒有剛才我們輸入的data.然後再按下返回鍵重新啟動activitydemo應用程式,觀察edittext中還有沒有data.
階段2:重寫生命週期的7個方法,新增日誌輸出語句或者是普通的輸出語句,觀察在按下home鍵是首先呼叫的是哪個方法?再次啟動activitydemo時又呼叫的是哪個方法?按下返回鍵首先呼叫的是哪個方法?再次動activitydemo時又呼叫的是哪個方法?
經過測試,可以得出結論:
首先,啟動activitydemo應用程式會呼叫oncreate、onstart、onresume方法.
然後,在文字框中輸入data後,如果按home鍵,會呼叫onpause、onstop方法。再次啟動activitydemo應用程式,呼叫onrestart、onstart、onresume方法。這時,在文字框輸入的data仍然保留。
再者,如果按返回鍵,程式呼叫onpause、onstop、ondestroy方法。再次啟動activitydemo應用程式,呼叫oncreate、onstart、onresume方法。這時,文字框中的data消失。與之前不同的是此次程式執行了ondestroy方法,銷毀記憶體中保留的資料。
現在問題又來了,想想如何實現按下返回鍵,然後再次啟動activitydemo應用程式,edittext中仍然保留我們剛剛輸入的內容呢?
下面**重寫生命週期的七個方法,實現edittext中名字的保留:
public class mainactivity extends activity
@override
public boolean oncreateoptionsmenu(menu menu)
@override
protected void onstart()
@override
protected void onrestart()
@override
protected void onresume()
@override
protected void onpause()
@override
protected void onstop()
@override
protected void ondestroy()
}
生命週期篇 一 Activity生命週期理解
乙個activity 通俗點就叫乙個介面吧 在實際使用中會有幾種狀態 1.正在顯示 處於當前螢幕最頂層 2.尚且可見,但不可用 在其他介面下面,但未被完全覆蓋 3.完全不可見 被其他介面完全覆蓋,最常見的就是切換到桌面 以上是實際使用android手機的時候最直觀的介面狀態,那麼接下來我們來 一下,...
理解 Activity 的生命週期
把activity看成乙個頁面,在android系統中,activity 被作為 activity 棧進行管理.當前活動的activity 處於棧頂.非活動的activity 壓在棧中,處於等待狀況 乙個activity的狀態有如下4種 活動.處於棧頂,有焦點,可見 暫停.失去焦點,但可見 停止.失...
Activity生命週期
oncreate 設定activity所使用的布局檔案 按鈕繫結 等靜態設定操作 onstart 該activity能被我們看到的時候就會呼叫onstart onresume 能夠獲得使用者焦點 onpause 啟動另外乙個activity的時候就會呼叫第乙個activity的該方法 onstop ...