《第一行代码》学习笔记9-活动Activity(7)
1.發(fā)現(xiàn)Android中的活動(dòng)是可以層疊的,每啟動(dòng)一個(gè)新的活動(dòng),就會(huì)覆蓋在原活動(dòng)之上,
然后點(diǎn)擊Back鍵會(huì)銷毀最上面的活動(dòng),下面的一個(gè)活動(dòng)就會(huì)重新顯示出來。
2.Android是使用任務(wù)來管理活動(dòng)的。一個(gè)任務(wù)就是一組存放在棧里的活動(dòng)的集合,該棧
被稱為返回棧(Back Stack)。棧是一種后進(jìn)先出的的數(shù)據(jù)結(jié)構(gòu)。
3.默認(rèn)情況下,每啟動(dòng)一個(gè)新活動(dòng),會(huì)在返回棧中入棧,處于棧頂->每按下Back鍵或
調(diào)用finish()方法去銷毀一個(gè)活動(dòng)時(shí),處于棧頂?shù)幕顒?dòng)會(huì)出棧->前一個(gè)入棧的活動(dòng)就會(huì)
重新處于棧頂?shù)奈恢谩O到y(tǒng)總是會(huì)顯示處于棧頂?shù)幕顒?dòng)給用戶。
4.活動(dòng)狀態(tài):每個(gè)活動(dòng)在其生命周期中最多有4種狀態(tài)。
(1)運(yùn)行狀態(tài):活動(dòng)位于返回棧的棧頂
(2)暫停狀態(tài):活動(dòng)不再處于棧頂,仍然可見。因?yàn)椴⒉皇敲總€(gè)活動(dòng)都是占滿整個(gè)屏幕
的,比如對話框形式的活動(dòng)只會(huì)占用屏幕中間的部分區(qū)域。處于暫停狀態(tài)的活動(dòng)完全存活。
##只有在內(nèi)存極低的情況下,系統(tǒng)才會(huì)考慮回收這種活動(dòng)。
(3)停止?fàn)顟B(tài):活動(dòng)不再處于棧頂,且完全不可見。系統(tǒng)仍然會(huì)為這種活動(dòng)保存相應(yīng)的
狀態(tài)和成員變量。并不完全可靠,其他地方需要內(nèi)存時(shí),處于停止?fàn)顟B(tài)的活動(dòng)有可能會(huì)被
系統(tǒng)回收。
(4)銷毀狀態(tài):從返回棧中移除就變成銷毀狀態(tài)。系統(tǒng)最傾向于回收這種狀態(tài)的活動(dòng),
從而保證手機(jī)的內(nèi)存充足。
5.活動(dòng)的生存期:Activity類中定義了七個(gè)回調(diào)方法,覆蓋了活動(dòng)生命周期的每一個(gè)環(huán)節(jié)。
(1)onCreate():每個(gè)活動(dòng)都重寫這個(gè)方法,會(huì)在活動(dòng)第一次被創(chuàng)建時(shí)被調(diào)用。在該方法
中完成活動(dòng)的初始化操作,如加載布局,綁定事件等。
(2)onStart():在活動(dòng)由不可見變?yōu)榭梢姇r(shí)調(diào)用。
(3)onResume():在活動(dòng)準(zhǔn)備好和用戶進(jìn)行交互的時(shí)候調(diào)用,此時(shí)活動(dòng)處于運(yùn)行狀態(tài)。
(4)onPause():在系統(tǒng)準(zhǔn)備去啟動(dòng)或者恢復(fù)另一個(gè)活動(dòng)時(shí)調(diào)用。通常在這個(gè)方法中將一些
消耗CPU的資源釋放掉,以及保存一些關(guān)鍵數(shù)據(jù)。但這個(gè)方法執(zhí)行速度一定要快,不然會(huì)影
響到新的棧頂活動(dòng)的使用。
(5)onStop():在活動(dòng)完全不可見的時(shí)候調(diào)用。它和onPause()的主要區(qū)別在于,如果啟動(dòng)
的新活動(dòng)是一個(gè)對話框式,則onPause()會(huì)執(zhí)行,而onStop()并不會(huì)執(zhí)行。
(6)onDestroy():在活動(dòng)被銷毀之前調(diào)用,之后活動(dòng)狀態(tài)將變?yōu)殇N毀狀態(tài)。
(7)onRestart():在活動(dòng)由停止?fàn)顟B(tài)變?yōu)檫\(yùn)行狀態(tài)之前調(diào)用,即活動(dòng)重新啟動(dòng)了。
轉(zhuǎn)載于:https://www.cnblogs.com/Iamasoldier6/p/5006836.html
總結(jié)
以上是生活随笔為你收集整理的《第一行代码》学习笔记9-活动Activity(7)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (软件工程复习核心重点)第三章需求分析-
- 下一篇: SQL注入:5、SQL盲注