一、生命周期7個
onCreate
onStart
onResume
** onPause**
** onStop**
** onDestory**
** onRestart**
onCreate是初始化工作
onCreate和onDestory是一對。onStart和onStop是一對,控制是否可見。
onResume和onPause是一對,控制是否可交互。比如新對話框B如果完全擋住A,則A會執(zhí)行onPause,onStop。如果只是部分遮擋,則只執(zhí)行onPause。
onRestart,比如新打開的B被關閉了,又重新回來。onRestart會返回到onStart繼續(xù)往下,并不會執(zhí)行onCreate
onPause不能做太復雜的操作,原因如下
<pre>
A.onCreate
A.onStart
A.onResume
A.onPause//打開全遮擋的B
B.onCreate
B.onStart
B.onResume
A.onStop
</pre>
可見耗時過長,會影響B(tài)的打開
二、參考Android Activity類中的finish()、onDestory()和System.exit(0) 三者的區(qū)別
finish是Activity的類,僅僅針對Activity,當調(diào)用finish()時,只是將活動推向后臺,并沒有立即釋放內(nèi)存,活動的資源并沒有被清理;當調(diào)用System.exit(0)時,殺死了整個進程,這時候活動所占的資源也會被釋放。
Activity.finish()
Call this when your activity is done and should be closed.
在你的activity動作完成的時候,或者Activity需要關閉的時候,調(diào)用此方法。
當你調(diào)用此方法的時候,系統(tǒng)只是將最上面的Activity移出了棧,并沒有及時的調(diào)用onDestory()方法,其占用的資源也沒有被及時釋放。因為移出了棧,所以當你點擊手機上面的“back”按鍵的時候,也不會找到這個Activity。Activity.onDestory()
the system is temporarily destroying this instance of the activity to save space.系統(tǒng)銷毀了這個Activity的實例在內(nèi)存中占據(jù)的空間。
在Activity的生命周期中,onDestory()方法是他生命的最后一步,資源空間什么的都沒有咯~~。當重新進入此Activity的時候,必須重新創(chuàng)建,執(zhí)行onCreate()方法。System.exit(0)
這玩意是退出整個應用程序的,是針對整個Application的。將整個進程直接KO掉。使用時,可以寫在onDestory()方法內(nèi),亦可直接在想退出的地方直接調(diào)用:
System.exit(0);
或 android.os.Process.killProcess(android.os.Process.myPid());