Activity的生命周期?
首先Activity創(chuàng)建到可與用戶交互過(guò)程播赁,會(huì)依次走:
- onCreate():(表示Activity創(chuàng)建了,這里面可以做一些初始化數(shù)據(jù)的操作乓序,但是不宜做耗時(shí)操作。為了裝逼替劈,我們可以說(shuō),該方法有一個(gè)參數(shù)Bundle 抬纸,用于恢復(fù)Activity意外銷毀時(shí)保存的數(shù)據(jù));
- onStart()表示Activity已經(jīng)由不見變成了可見狀態(tài)阿趁,為了裝逼坛猪,我們可以說(shuō):通過(guò)看源碼的注解脖阵,onStart方法可以在onCreate方法后調(diào)用墅茉,也會(huì)在onRestart()方法后調(diào)用。
- onResume()表示Activity已經(jīng)由不可與用戶交互悍募,變成了可與用戶交互洋机,即獲取到了焦點(diǎn)坠宴,通過(guò)看源碼的注解我們可以知道绷旗,這個(gè)方法中,我們適合開啟動(dòng)畫或者打開相機(jī)等操作庄岖。
Activity由失去焦點(diǎn)到銷毀的過(guò)程,依次會(huì)走:
- ?onPause()表示Activity失去焦點(diǎn)隅忿,由可與用戶交互變成不可與用戶交互邦尊,當(dāng)一個(gè)Activity不再棧頂?shù)臅r(shí)候,就算它還是可見的胳赌,例如匙隔,棧頂?shù)腁ctivity透明,它也不能與用戶進(jìn)行交互。為了裝逼撼短,可以說(shuō):我們通過(guò)觀察源碼可以發(fā)現(xiàn)挺勿,這個(gè)方法中主要是用于保存Activity正在編輯的一些數(shù)據(jù)和狀態(tài)再榄,提出一個(gè)“edit ?in ?place”的模式給用戶確保在內(nèi)存不足的情況下,不至于丟失數(shù)據(jù)方仿。這個(gè)方法中丧慈,我們可以做一些如:停止動(dòng)畫、關(guān)閉資源訪問(wèn)等操作麦备;
- ?onStop()表示Activity由可見變成不可見,接下來(lái)可能會(huì)走onDestory()方法或者onRestart()方法黍匾;
- ?onRestart()onStop之后沒(méi)有走onDestroy(),而是再次變成用戶可見呛梆,onRestart()方法之后是onStart()方法;