標籤:
android的activity的生命週期有7個方法,分別是onCreate(),onStart(),onRestart(),onResume(),onPause(),onStop(),onDestory()。
有三個迴圈:1.完整的迴圈:從onCreate()一直運行到onDestory()結束。onCreate()—>onStart()—>onResume()—>onPause()—>onStop()—>onDestory()。一路運行到頭
2.可見的迴圈:從onStart()運行到onStop()結束。onStart()—>onResume()—>onPause()—>onStop()—>onRestart()—>onStart()。開啟新的activity並且完全覆蓋老的activity後,通過後退鍵重新顯示老的activity
3.可互動的迴圈:從onResume()運行到onPause()結束。onResume()—>onPause()—>onResume()。開啟新的activity不完全覆蓋老的activity,通過後退鍵重新顯示老的activity
onCreate():一般在其中進行資料的初始化。
onStart():當調用這個方法時,activity已經可被使用者看到,但不一定在最前台。
onResume():當調用這個方法時,activity處於最前台,能與使用者進行互動。
onPause():當調用這個方法時,activity處於暫停狀態,也就是部分可見。只要有一個新的activity被建立,就一定調用onPause()方法。需要持久保留的資料儲存在onPause()方法中
onStop():當調用這個方法時,activity處於停止狀態,也就是完全不可見。只要當前的activity完全不可見了,就一定調用onStop()方法。
onDestory():當調用到這個方法是,整個程式都關閉了。
onRestart():這個方法只有在老的activity已經完全不可見時,通過後退鍵又顯示出來時調用。
這些都是在系統記憶體充足時的調用
橫豎屏切換:執行onPause(),onStop(),onDestory(),然後執行onCreate(),onStart(),onRestart(),onResume()。銷毀當前的activity,重新建立一個新的activity,橫豎屏的切換都是這個流程。
activity之間的切換順序:Aactivity切換到Bactivity,先執行Aactivity的onPause(),然後執行Bactivity的onCreate(),onStart(),onResume(),最後執行Aactivity的onStop()。Aactivity中比較消耗資源的部分關閉後,再切換到Bactivity中執行onCreate()方法,進行資料初始化,顯示Bactivity中的介面。當Bactivity已經執行到onResume()方法時,使用者可以進行互動,然後再執行Aactivity中的onStop()方法,這樣雖然比較耗時,但是是在後台啟動並執行,對使用者的使用沒有什麼影響。
android activity的生命週期