Android Activity生命周期和堆棧管理的詳解
Activity的生命周期
Activity是Android中的四大組件之一,也是最基本,最重要的組件,是android系統(tǒng)提供一個(gè)可視化的,能與用戶交換的組件。
系統(tǒng)提供的組件,不需要用戶實(shí)例化,用戶也不能實(shí)例化,是系統(tǒng)進(jìn)行回調(diào),例如web開發(fā)的servlet也是系統(tǒng)提供的,和android 的其他系統(tǒng)組件一樣。
那么不需要我們實(shí)例化我們怎么用呢,這些組件都有相同的特點(diǎn)就是:
1.都需要在配置文件中注冊 2.都需要自定義類去繼承系統(tǒng)的Api 3.都有自己的生命周期
那么Activity的生命周期有那些方法呢:
1.onCreate 2.onStart 3.onrestart 4.onResume 5.onpause 6.onstop 7.ondestroy
Activity總共有以上7個(gè)回調(diào)方法
Activiy總共有三種小的生命周期
場景一
一個(gè)Activity的開啟到銷毀
OnCreate---onStart----onResume------onPause-----Onstop---onDestroy
這是一個(gè)完整的生命周期
場景二
A Activity 跳轉(zhuǎn)到 到 B Activity (BActivity是完全覆蓋AActivity)
AOnCretate-----AOnStart----AOnResume------AOnPause------BOnCreate-----BOnStart------BOnReSume ----AOnStop
B activity 返回到A Activity生命周期執(zhí)行的回調(diào)是:
BOnPause---AOnRestart--AOnResume---BOnstop---BOnDestory
場景三
A Activity跳轉(zhuǎn)到B Activity(B Activity 是一個(gè) 對話框形式的Activity 或者 BActivty是一個(gè)透明的)
AOnCretate-----AOnStart----AOnResume ------AOnPause------ BOnCreate-----BOnStart------BOnReSume ----
B activity 返回到A Activity生命周期執(zhí)行的回調(diào)是:
BOnPause---AOnResume---BOnstop---BOnDestory
場景四
手機(jī)的橫豎屏切換,android的生命周期方法的重新執(zhí)行,
onPause onstop ondestroy oncreate onstart onresume
如果想橫豎屏切換時(shí),不重新走生命周期,需要清單為Activity配置屬性:configChanges
也可以設(shè)置屏幕 鎖定為橫屏或豎屏 ,screenOrientation:lanscape | portriant
2、Activity的四種狀態(tài)
運(yùn)行 onResume 暫停 onPause 停止 onStop 銷毀 onDestroy
3、Activity的三個(gè)生命周期
1>完整的 onCreate——onDestroy 2>可見的 onStart——onStop 3>活動的 onResume——onPause
Activity的堆棧管理模式
數(shù)據(jù)結(jié)構(gòu) 隊(duì)列:先進(jìn)先出 棧:先進(jìn)后出 每打開一個(gè)Activity,將會入棧,退出一個(gè),將會出棧,采用棧的先進(jìn)后出結(jié)構(gòu)
啟動模式
standard 標(biāo)準(zhǔn)啟動 singleTop 單一棧頂 保證棧頂只有一個(gè)實(shí)例,任務(wù)棧中可能有很多實(shí)例 場景:瀏覽器 書簽 singleTask 單一任務(wù)棧 保證 所在的任務(wù)棧 ,只有一個(gè)實(shí)例 比如說設(shè)置 A 為此模式,保證整個(gè)任務(wù)棧只有A一個(gè)實(shí)例,如果棧頂有其他Activity,再打開A時(shí),將棧頂其他Activity全部出棧。 場景 如:webkit 內(nèi)核 singleInstance單一實(shí)例 保證整個(gè)系統(tǒng)的棧中,只有一個(gè)實(shí)例 比如說設(shè)置 A 為此模式,那么 A將單獨(dú)使用一個(gè)任務(wù)棧 場景:打電話 、鬧鈴響
如有疑問大家留言或者到社區(qū)討論,共同進(jìn)步,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Android編程中Perferences的用法實(shí)例分析
這篇文章主要介紹了Android編程中Perferences的用法,以實(shí)例形式較為詳細(xì)的分析了配置文件preferences.xml的功能、定義及使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11android6.0權(quán)限動態(tài)申請框架permissiondispatcher的方法
下面小編就為大家分享一篇android6.0權(quán)限動態(tài)申請框架permissiondispatcher的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01Android實(shí)現(xiàn)相機(jī)拍攝、選擇、圖片裁剪功能
自定義控件,重寫ImageView 功能實(shí)現(xiàn):點(diǎn)擊圓形頭像之后可以實(shí)現(xiàn)相冊上傳或者開啟相機(jī),然后把得到的圖片經(jīng)過剪裁,把剪裁過的圖片設(shè)置為頭像的背景圖,需要的朋友可以參考下2016-09-09Android在WebView中調(diào)用系統(tǒng)下載的方法
這篇文章主要為大家詳細(xì)介紹了Android在WebView中調(diào)用系統(tǒng)下載的簡單使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05android底部彈出iOS7風(fēng)格對話選項(xiàng)框(QQ對話框)--第三方開源之IOS_Dialog_Library
這篇文章主要介紹了android底部彈出iOS7風(fēng)格對話選項(xiàng)框(QQ對話框)--第三方開源--IOS_Dialog_Library的相關(guān)資料,需要的朋友可以參考下2015-11-11Android黑科技之讀取用戶短信+修改系統(tǒng)短信數(shù)據(jù)庫
這篇文章主要介紹了Android黑科技之讀取用戶短信+修改系統(tǒng)短信數(shù)據(jù)庫 的相關(guān)資料,需要的朋友可以參考下2015-12-12Android Studio使用Kotlin時(shí),修改代碼后運(yùn)行不生效的解決方法
這篇文章主要介紹了Android Studio使用Kotlin時(shí),修改代碼后運(yùn)行不生效的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03教你3分鐘了解Android 簡易時(shí)間軸的實(shí)現(xiàn)方法
本篇文章主要介紹了教你3分鐘了解Android 簡易時(shí)間軸的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07Android Color顏色過度計(jì)算實(shí)現(xiàn)代碼
這篇文章主要介紹了Android Color顏色過度計(jì)算實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-06-06