Android學習之淺談Activity的生命週期

作爲Android四大組件之一的activity 在開發的過程中,我們對其使用必不可少。所謂想要熟練使用一個知識點,必先深入瞭解其原理。那麼今天,我們就來聊聊關於Activity的生命週期吧~

一、什麼是activity?

1.通俗的說,一個activity就是一個屏幕。用於用戶與應用程序之間進行交互。
2.activity之間通過intent進行通信。
3.當你每創建一個activty,都必須要在AndroidManifest.xml配置文件中聲明,否則將無法識別並執行。

二、activity的生命週期

在這裏插入圖片描述
首先上一張圖。相信這張圖很多人都看見過,但是可能不是特別的理解,下面我就來一一介紹。

  1. onCreate()。每個活動中我們都重寫了這個方法,所以大家應該都挺熟悉的。這個方法用於完成活動的初始化操作,比如加載佈局、綁定事件等。

  2. onStart()。這個方法在活動由不可見變爲可見的時候調用。

  3. onResume()。這個方法在活動準備好與用戶進行交互的時候調用。

  4. onPause()。這個方法在系統準備去啓動或者恢復另一個活動的時候調用。

  5. onStop()。這個方法在活動完全不可見的時候調用。
    注:它與onPause()的主要區別在於,如果啓動的新活動是一個對話框式的活動,那麼onPause()方法會得到執行,而onStop()方法並不會執行。

  6. onDestroy()。這個方法在活動被銷燬之前調用,之後活動的狀態也會變成銷燬狀態。

  7. onRestart()。這個方法在活動由停止狀態變爲運行狀態調用,也就是活動被重新啓動了。

相信你看到這些可能還是有點懵逼~~ 那我們直接上代碼

三、代碼演示

在這裏插入圖片描述
如圖 我創建了兩個activity 以及其相對應的佈局文件。

NormalActivity主要是輸出一段話,DialogActivity也是如此,但是在AndroidManifest中,我給它設置了一個對話框的主題格式,已驗證onStop()與onPause()方法的不同。
在這裏插入圖片描述
再貼一個回調方法的代碼:
在這裏插入圖片描述
其他代碼較爲簡單,就不一一貼圖了。

四、演示分析

現在我們運行下程序:在這裏插入圖片描述
觀察logcat中的打印日誌:
在這裏插入圖片描述
當MainActivity第一次被創建的時候,它會依次執行onCreate()、onStart()、onResume()方法,然後我們點擊第一個按鈕:
在這裏插入圖片描述
由於執行了另一個活動NormalActivity 所以onPause()和onStop()方法會執行。這時候我們按下返回鍵返回MainActivity:
在這裏插入圖片描述
由於之前MainActivity處於停止狀態,所以返回後,onRestart()方法會執行,然後依次執行onStart()和onResume()方法。但是這個時候onCreate()方法不會重新調用,因爲MainActivity沒有被重新創建。

然後我們點擊第二個按鈕,啓動DialogActivity:

在這裏插入圖片描述
彈出一個對話框。這時候我們觀察logcat:
在這裏插入圖片描述
這個時候我們發現,onPause()方法得到執行,onStop()方法沒有執行,因爲它僅僅只是一個標題框,並沒有完全的遮蓋MainActivity,所以MainActivity只是進入了暫停狀態,並沒有停止。這時候我們再點擊返回鍵:
在這裏插入圖片描述
只會執行onResume()方法,和我們想的一樣。

最後我們在MainActivity頁面點擊Back按鈕,退出程序:
在這裏插入圖片描述
依次執行onPause()、onStop()、onDestroy()方法,最後銷燬MainActivity。

這樣一個完整的Activity生命週期,我們就體驗了一遍呀~

感覺也是沒有什麼特別難的點,自己親手敲一遍代碼,會對這個過程印象更加深刻。

如果你還有什麼不明白的地方,請在評論區留言,我們可以探討一下,共同進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章