activity生命週期全解析

0、目錄

一、單個activity的生命週期

二、兩個activity交互時的生命週期

三、特殊場景下的生命週期

四、一些其他問題

五、總結

一、單個activity的生命週期

首先我們先看一下這張經典的activity生命週期圖。

具體總結如下:

二、兩個activity交互時的生命週期

啓動A activity:onCreat()--onStart()--onResume()

啓動A activity後,再啓動B activity: 首先調用A activity的onStop()方法,後啓動B activity, onCreat()--onStart()--onResume()

B activiy啓動後,點擊返回鍵回到A activity:首先調用B activity的onStop()方法,後調用A activity的onRestart()--onStart()--onResume(),最後再調用B activity的onStop()--onDestory()

需要注意的是,當啓動B activity時,是在A activity調用了onPause()方法後再創建B activity的,爲什麼其是在onPause()之後,而不是onPause()之前或者在onStop()之後?

如果是onPause()之前,則說明創建新activity之前,原activity依然在運行,比如聽着音樂時來了電話,肯定要先停了音樂,否則就會出現接着電話音樂還放着。

如果在onStop()之後,假設新的Activity沒有創建成功,而此時當前的Activity已經onStop(),表示已經不可見,顯然就會黑屏,所以要防止這種情況的出現。

通過兩個activity的交互,因創建新activity在onPause()之後,所以也能看出,onPause()方法不能做耗時任務,否則回影響跳轉速度。

總結:

三、特殊場景下的生命週期

各種情況如下總結:

四、一些其他問題

五、總結

本文主要講了activity的生命週期相關,從單個activity的生命週期變化,到兩個activity交互的生命週期變化,到一些特殊場景的生命週期變化,對activity的生命週期做了全面的回顧,希望對您有幫助。

好久沒有寫文章了,因爲過去一段時間想換工作,所以準備面試去了,現在又有時間啦,哈哈,繼續自己的學習。

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