Activity
Activity在應(yīng)用中的表現(xiàn)就是一個(gè)用戶界面,他會(huì)加載指定的布局文件來(lái)顯示各種UI元素,列如Textvew,EditView,ImageView,ListView等,并且為這些UI元素設(shè)置事件處理函數(shù),使得用戶可以跟這些UI進(jìn)行交互。同時(shí),Activity還可以在不同的Activity之間跳轉(zhuǎn),將不同的頁(yè)面串聯(lián)在一起,共同完成指定的操作流程。每一個(gè)應(yīng)用都是由一個(gè)或者多個(gè)Activity組成,它是android應(yīng)用中不可缺少的部分,同時(shí)也是四大組件之一。(ps:在《android開發(fā)進(jìn)階 從小工到專家 》中這樣介紹一個(gè)Activity,我覺得非常形象,好理解。)
Activity的生命周期
每個(gè)Activity都有生命周期
1,onCreate()
當(dāng)Activity被創(chuàng)建時(shí),這個(gè)方法將被是被調(diào)用,一般會(huì)在這個(gè)方法里完成Activity的初始化操作,如,設(shè)置布局,實(shí)例化組件,綁定事件。
2,onStart()
這個(gè)方法將會(huì)在onCreate被調(diào)用之后調(diào)用,但是此時(shí)的Activity還是處于一種不可見的狀態(tài)。
3,onResume()
當(dāng)Activity變?yōu)榭梢姷臅r(shí)候,這個(gè)方法將會(huì)被調(diào)用,執(zhí)行完onResume之后,Activity就會(huì)請(qǐng)求AMS渲染它所管理的視圖。此時(shí)的Activity一定會(huì)位于返回棧的棧頂,并且處于運(yùn)行狀態(tài)。
4,onPause()
這個(gè)函數(shù)在系統(tǒng)準(zhǔn)備去啟動(dòng)或者恢復(fù)另一個(gè)Activity時(shí)調(diào)用,也就是在Activity即將從可見狀態(tài)變?yōu)椴豢梢姷臅r(shí)。但是Activity此時(shí)還是可見的。
5,onStop()
這個(gè)函數(shù)在Activity完全不可見的時(shí)候調(diào)用。它和onPause的主要區(qū)別在于,如果啟動(dòng)的Activity是一個(gè)對(duì)話框式的Activity,那么onPause會(huì)被執(zhí)行,而onStop就不會(huì)被執(zhí)行。
6,onDestory()
這個(gè)函數(shù)在Activity被銷毀之前調(diào)用,之后Activity就會(huì)被移除棧。
7,onRestart()
這個(gè)函數(shù)有停止?fàn)顟B(tài)重新轉(zhuǎn)為運(yùn)行狀態(tài)之前被調(diào)用,之后Activity會(huì)被重新運(yùn)行起來(lái).被調(diào)用之后,Activity就會(huì)執(zhí)行onStart這個(gè)函數(shù)
生命路線(懶得總結(jié)了,以下是從網(wǎng)上復(fù)制一下的
1.啟動(dòng)Activity:系統(tǒng)會(huì)先調(diào)用onCreate方法,然后調(diào)用onStart方法,最后調(diào)用onResume,Activity進(jìn)入運(yùn)行狀態(tài)。
2.當(dāng)前Activity被其他Activity覆蓋其上或被鎖屏:系統(tǒng)會(huì)調(diào)用onPause方法,暫停當(dāng)前Activity的執(zhí)行。
3.當(dāng)前Activity由被覆蓋狀態(tài)回到前臺(tái)或解鎖屏:系統(tǒng)會(huì)調(diào)用onResume方法,再次進(jìn)入運(yùn)行狀態(tài)。
4.當(dāng)前Activity轉(zhuǎn)到新的Activity界面或按Home鍵回到主屏,自身退居后臺(tái):系統(tǒng)會(huì)先調(diào)用onPause方法,然后調(diào)用onStop方法,進(jìn)入停滯狀態(tài)。
5.用戶后退回到此Activity:系統(tǒng)會(huì)先調(diào)用onRestart方法,然后調(diào)用onStart方法,最后調(diào)用onResume方法,再次進(jìn)入運(yùn)行狀態(tài)。
6.當(dāng)前Activity處于被覆蓋狀態(tài)或者后臺(tái)不可見狀態(tài),即第2步和第4步,系統(tǒng)內(nèi)存不足,殺死當(dāng)前Activity,而后用戶退回當(dāng)前Activity:再次調(diào)用onCreate方法、onStart方法、onResume方法,進(jìn)入運(yùn)行狀態(tài)。
7.用戶退出當(dāng)前Activity:系統(tǒng)先調(diào)用onPause方法,然后調(diào)用onStop方法,最后調(diào)用onDestory方法,結(jié)束當(dāng)前Activity。
被誤殺的應(yīng)用,臨時(shí)數(shù)據(jù)的保存與恢復(fù)
onSaveInstanceState:
1)當(dāng)應(yīng)用被按下Home鍵的后,系統(tǒng)將會(huì)調(diào)用此方法
2)因?yàn)橄到y(tǒng)內(nèi)存過(guò)低時(shí),在Activity被覆蓋或退居后臺(tái)之后,系統(tǒng)資源不足將其殺死
3)按下手機(jī)電源鍵的時(shí)候
4)橫豎屏切換的時(shí)候,因?yàn)樾枰蠕N毀activity,再重新創(chuàng)建新的activity
(ps:此方法在onpause方法前被調(diào)用)
onRestoreInstanceState:
1)當(dāng)應(yīng)用被按下Home鍵的后。又重新回到activity的時(shí)候被調(diào)用
2)因?yàn)橄到y(tǒng)內(nèi)存過(guò)低時(shí),在Activity被覆蓋或退居后臺(tái)之后,系統(tǒng)資源不足將其殺死。用戶又重新打開activity的時(shí)候
3)按下手機(jī)電源鍵的時(shí)候,又回到activity的時(shí)候
4)橫豎屏切換的時(shí)候,因?yàn)樾枰蠕N毀activity,再重新創(chuàng)建新的activity
(ps:此方法在onstart方法后被調(diào)用,介于onstar和onresume)
使用方式
有空就寫寫筆記,感覺挺好的,對(duì)知識(shí)的理解會(huì)更加深刻
計(jì)劃
下一章復(fù)習(xí)activity的啟動(dòng)模式