理解 Activity 的生命週期

2021-09-01 02:12:32 字數 2019 閱讀 6699

把activity看成乙個頁面,在android系統中,activity 被作為 activity 棧進行管理.

- 當前活動的activity 處於棧頂.

- 非活動的activity 壓在棧中, 處於等待狀況

乙個activity的狀態有如下4種:

- 活動. (處於棧頂, 有焦點,可見)

- 暫停. (失去焦點,但可見)

- 停止. (失去焦點,不可見)

- 銷毀. (被系統或程序結束)

乙個activity的方法有如下7個:

- .oncreate()    建立

- .onstart()      啟動

- .onrestart()    重啟.

- .onresume()  恢復

- .onpause()     暫停

- .onstop()      停止

- .ondestroy()   銷毀

activity 的生命週期的 cases

a. activiy1 啟動

- code:

super.oncreate()

- 執行順序: ( activity1 : oncreate() -> onstart() ->onresume() )

b. 從activity1 跳轉到 activity2, 然後關閉activity1.

- code: 

intent intent = new intent();  //新建乙個intent物件.

intent.setclass(activity1.this, activity2.class); //設定intent要啟動的類.

startactivity(intent); //啟動乙個新的activity

activity1.this.finish(); //關閉當前的activity.

- 執行順序: (activity1: onpause() )->  ( activity2: oncreate() ->onstart() ->onresume()) -> (activity1:onstop() ->ondestroy())

c. 關閉activity1, 退出程式 , 或者按 "back" 鍵.

- code: 

activity1.this.finish();

-執行順序: activity1: onpause()->onstop()->ondestroy();

d. 按"home"鍵, 然後再執行程式.

- 執行順序: activity1: onpause()->onstop()  => 執行其他程式 => 再執行本程式: activity1: onrestart()->onstart()-)>onresume()

e. 重新整理activity1

- code:

public class lifecycleactivity extends activity  

});

} @override

protected void ondestroy()

@override

protected void onpause()

@override

protected void onrestart()

@override

protected void onresume()

@override

protected void onstart()

@override

protected void onstop()

public void reload()

}

-執行順序: oncreate()->onstart()->onresume() ==> 點按紐後 onpause()->oncreate()->onstart()->onresume()->onstop()->ondestroy()

理解Activity生命週期

最近學習了activity的生命週期,下面通過乙個小例子來更好的理解一下activity的生命週期。階段1 實現如下圖所示的介面 此時按下home鍵,再次啟動activitydemo應用程式,觀察一下edittext中還有沒有剛才我們輸入的data.然後再按下返回鍵重新啟動activitydemo應...

生命週期篇 一 Activity生命週期理解

乙個activity 通俗點就叫乙個介面吧 在實際使用中會有幾種狀態 1.正在顯示 處於當前螢幕最頂層 2.尚且可見,但不可用 在其他介面下面,但未被完全覆蓋 3.完全不可見 被其他介面完全覆蓋,最常見的就是切換到桌面 以上是實際使用android手機的時候最直觀的介面狀態,那麼接下來我們來 一下,...

Activity生命週期

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