單個Actiivty正常的生命周期

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站制作、網(wǎng)站建設與策劃設計,大化網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:大化等地區(qū)。大化做網(wǎng)站價格咨詢:18980820575
onCreate - onStart - onResume - onPause - onStop - onDestory
這就是一個Activity從被創(chuàng)建到被銷毀過程。
其中正常運行狀態(tài)為onResume
當Activity從前臺被置于后臺,
onResume - onPause - onStop
當從后臺重新置于前臺
onStop - onPause - onResatrt - onStart- onResume
其中可以發(fā)現(xiàn),只要Activity置于前臺都會執(zhí)行onStart函數(shù),所以我們可以考慮在這里做一下需要在前臺就處理的邏輯
各個生命周期函數(shù):
onCreate: Activity被創(chuàng)建,此時Activity處于不可見、不可交互
onStart: 此時Activity 部分可見不可交互
onRestart: Activity從后臺重新回到前臺,部分可見不可交互
onResume: 完全可見可交互,為Activity正常運行狀態(tài)
onPause: Activity處于暫停,從前臺被置于后臺 部分可見部分不可見,不可交互
onStop: 完全置于后臺,完全不可見,
onDestroy: Activity被銷毀
上面就是一個正常的Activity的生命周期,
在Activity生命周期中,還設計一些其他:
Activity旋轉(zhuǎn):
onCreate - onStart - onResume
此時被旋轉(zhuǎn)
- onPause - onSaveInstanceState - onStop - onDestroy - onCreate - onStart - onRestoreInstanceState - onResume
可以發(fā)現(xiàn)當Activity被旋轉(zhuǎn)時,整個Activity是被銷毀然后重新創(chuàng)建的。其中新增調(diào)用了兩個生命周期函數(shù)
onSaveInstanceState: 當Activity被系統(tǒng)異常銷毀時被調(diào)用,用于存儲數(shù)據(jù),用于系統(tǒng)恢復Activity時恢復數(shù)據(jù)
onRestoreInstanceState: 當Actiivty被系統(tǒng)異常銷毀并重新創(chuàng)建時,取出在onSaveInstanceState時存儲的數(shù)據(jù)
注意,在onCreate函數(shù)中,其實也是有參數(shù)的
此處的savedInstanceState也是在onSaveInstanceState時存儲的數(shù)據(jù),但此處可能為nll,
因為在正常的Activity時,此處就是null,只有在Activity被異常銷毀然后被系統(tǒng)重新創(chuàng)建時,此處才有值。
如果要在此處使用,切記要判空。
onNewIntent與Activity的啟動模式有關
當Activity未設置啟動模式時,則不會觸發(fā)該生命周期函數(shù)
當Activity已經(jīng)處于應用的Activity棧中
onNewIntent只會在Activity設置了啟動模式,并且Activity被復用時才會調(diào)起。
注意:只對startActivityForResult調(diào)起的Activity起作用,statActivity本質(zhì)調(diào)用的也是startActivityForResult,Activity正常的切換前后臺時不會觸發(fā)的。
A - B:
A正常運行處于 onResume,打開B
A onPause - B onCreate - B onStart - B onResume - A onStop
點擊跳入B頁面, 首先A進入暫停,B開始創(chuàng)建,到onResume完全可見可交互,于是A被完全遮擋,變成完全不可見、處于后臺,進入onStop
A - B -goBack- A
在B頁再執(zhí)行返回
B onPause - A onRestart - A onStart - A onResume - B Stop - B onDestory
和A進入B類似,B返回A時,B進入暫停,A變得重新可見到A完全可見,進入onResume,然后B進入停止,并銷毀
B啟動模式設置為 SingleTop,B - B
B onPause - B onNewIntent - B onResume
因為 B已經(jīng)處于棧頂,啟動模式為 SingleTop 則不會重新創(chuàng)建B的實例
將A的啟動模式設置為SingleTask
可以通過在andorid studio的終端 Terminal中輸入:adb shell dumpsys activity
查看當前應用的Activity task棧
Activity是Android最常用的四大組件之一,Activity是Android應用中與用戶交互的界面,通常一個activity就是一個屏幕,Activity一共有四種狀態(tài),Active/Running(當Activity可見且可以與用戶交互);Paused(當Activity可見但是不可交互);Stoped(當Activity被完全覆蓋不可見);Killed(當Activity被系統(tǒng)從內(nèi)存中刪除).其生命周期如下圖:
相關方法及作用:
1 onCreate:當Activity創(chuàng)建時僅且調(diào)用一次,該方法主要適用于初始化頁面。
2 onStart:當Activity調(diào)用onCreate方法之后,然后調(diào)用此方法開啟Activity,Activty此時可見但不可交互。
3 onResume:此時Activity在前臺可見且可與用戶交互。適合做UI更新操作。
4 onPouse:當Activity被另外一個Activity覆蓋時調(diào)用該方法。
5 onStop:當Activity在前臺不可見或者Activity在銷毀前調(diào)用此方法,此方法適合做一些資源的回收操作。
6 onDestroy:當activity被銷毀時調(diào)用此方法。
問題:
1)onCreate 和 onStart 方法的區(qū)別
a.執(zhí)行次數(shù)不同,onCreate只執(zhí)行一次,而onStart可以執(zhí)行多次。
b.在activity的狀態(tài)不同,onCreate被調(diào)用時Activity的狀態(tài)還是未可見,而調(diào)用onStart時已可見。
2) onStart 和 onStop的區(qū)別
在執(zhí)行onStart或者onStop時,Activity都是不可交互的,執(zhí)行onStart時Activity在前臺不可見,在后臺可見。而執(zhí)行onStop時Activity前后臺都不可見。
3)onResume 和 onPouse的區(qū)別
在執(zhí)行onResume時,Activity在前臺是可見的且可以與用戶交互的。而執(zhí)行onPouse時Activity在前臺有可能可見,Activity沒有獲取到焦點,此時不可與用戶交互。
產(chǎn)品的開發(fā)是長期的,是迭代的
每個迭代版本周期不等,有一周,有一個月的,也有可能更長
如果是單獨的項目開發(fā)一般在1-6月之間吧。
網(wǎng)站標題:android周期,android生命周期有幾種狀態(tài)
轉(zhuǎn)載來源:http://chinadenli.net/article15/dsgppgi.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、品牌網(wǎng)站建設、靜態(tài)網(wǎng)站、ChatGPT、網(wǎng)站改版、外貿(mào)網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)