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

2021-07-02 05:39:53 字數 1538 閱讀 2299

乙個activity(通俗點就叫乙個介面吧),在實際使用中會有幾種狀態:

1. 正在顯示(處於當前螢幕最頂層)

2. 尚且可見,但不可用(在其他介面下面,但未被完全覆蓋)

3.完全不可見(被其他介面完全覆蓋,最常見的就是切換到桌面)

以上是實際使用android手機的時候最直觀的介面狀態,那麼接下來我們來**一下,當乙個activity切換到以上三種狀態時具體會做些什麼事情?

先來看看activity的生命週期圖

1. 我們來建立乙個activity,並重寫上圖中所出現的方法並打上輸出語句便於觀察每個動作會呼叫哪些相關方法和其呼叫順序

2.建立好activity之後,我們乙個乙個步驟來觀察:

1.啟動activity:

從logcat中輸出的日誌資訊來看,當啟動乙個新的activity的時候會先後呼叫 oncreate() ,onstart(),onresume();

2.從當前介面切換到桌面

根據列印出來的資訊我們可以知道,當原來的activity被其他介面完全覆蓋時,activity的onpause()方法(暫停)和onstop()方法先後被呼叫

3.重新回到activity:

當activity由完全不可見狀態再次回到螢幕最頂層的時候activity的onrestart(),onstart(),onresume()方法會相繼被呼叫

注意這裡,啟動乙個activity和重新回到乙個被完全覆蓋的activity有些不同,啟動乙個activity之前,這個activity並不存在,所以我們必須要建立它(oncreate())

而從新回到activity之前,這個activity已經存在,所以我們不需要再次呼叫oncreate()來建立它,而是需要讓它重新執行(onrestart())

4.切換到乙個全透明的介面:

這個時候,原先的activity雖然被遮住了,但由於新介面是全透明的,所以,還是能夠看得到原先的介面。

當全透明的介面被開啟的時候,原先的activity只會呼叫自身的onpause()方法,並不呼叫onstop()

5.當我們「finish()」乙個activity的時候,會先後呼叫onpause(),onstop(),ondestroy()方法。

17 生命週期Activity

頁面a,呼叫方法順序 本頁面oncreate onstart onresume 從a跳轉到b,呼叫方法的順序為 從b返回a,呼叫順序 下乙個頁面onpause 上乙個頁面onrestart onstart onresume 下乙個頁面onstop ondestroy 豎屏與橫屏的切換 都是原螢幕的頁...

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...