一、生命周期7個(gè)
onCreate
onStart
onResume
** onPause**
** onStop**
** onDestory**
** onRestart**
onCreate是初始化工作
onCreate和onDestory是一對(duì)重付。onStart和onStop是一對(duì),控制是否可見(jiàn)。
onResume和onPause是一對(duì)嗡官,控制是否可交互。比如新對(duì)話框B如果完全擋住A彩郊,則A會(huì)執(zhí)行onPause,onStop察滑。如果只是部分遮擋打厘,則只執(zhí)行onPause。
onRestart贺辰,比如新打開的B被關(guān)閉了户盯,又重新回來(lái)。onRestart會(huì)返回到onStart繼續(xù)往下饲化,并不會(huì)執(zhí)行onCreate
onPause不能做太復(fù)雜的操作莽鸭,原因如下
<pre>
A.onCreate
A.onStart
A.onResume
A.onPause//打開全遮擋的B
B.onCreate
B.onStart
B.onResume
A.onStop
</pre>
可見(jiàn)耗時(shí)過(guò)長(zhǎng),會(huì)影響B(tài)的打開
二吃靠、參考Android Activity類中的finish()硫眨、onDestory()和System.exit(0) 三者的區(qū)別
finish是Activity的類,僅僅針對(duì)Activity巢块,當(dāng)調(diào)用finish()時(shí)礁阁,只是將活動(dòng)推向后臺(tái)巧号,并沒(méi)有立即釋放內(nèi)存,活動(dòng)的資源并沒(méi)有被清理姥闭;當(dāng)調(diào)用System.exit(0)時(shí)丹鸿,殺死了整個(gè)進(jìn)程,這時(shí)候活動(dòng)所占的資源也會(huì)被釋放棚品。
Activity.finish()
Call this when your activity is done and should be closed.
在你的activity動(dòng)作完成的時(shí)候靠欢,或者Activity需要關(guān)閉的時(shí)候,調(diào)用此方法铜跑。
當(dāng)你調(diào)用此方法的時(shí)候门怪,系統(tǒng)只是將最上面的Activity移出了棧,并沒(méi)有及時(shí)的調(diào)用onDestory()方法疼进,其占用的資源也沒(méi)有被及時(shí)釋放薪缆。因?yàn)橐瞥隽藯#援?dāng)你點(diǎn)擊手機(jī)上面的“back”按鍵的時(shí)候伞广,也不會(huì)找到這個(gè)Activity。Activity.onDestory()
the system is temporarily destroying this instance of the activity to save space.系統(tǒng)銷毀了這個(gè)Activity的實(shí)例在內(nèi)存中占據(jù)的空間疼电。
在Activity的生命周期中嚼锄,onDestory()方法是他生命的最后一步,資源空間什么的都沒(méi)有咯~~蔽豺。當(dāng)重新進(jìn)入此Activity的時(shí)候区丑,必須重新創(chuàng)建,執(zhí)行onCreate()方法修陡。System.exit(0)
這玩意是退出整個(gè)應(yīng)用程序的沧侥,是針對(duì)整個(gè)Application的。將整個(gè)進(jìn)程直接KO掉魄鸦。使用時(shí)宴杀,可以寫在onDestory()方法內(nèi),亦可直接在想退出的地方直接調(diào)用:
System.exit(0);
或 android.os.Process.killProcess(android.os.Process.myPid());