1. 程式人生 > >Activity的四種狀態和生命週期

Activity的四種狀態和生命週期

        Android程式中,Activity是程式和使用者互動的介面,在系統中存在四種狀態:Running, Paused, Stopped, Killed。

        Running是指Activity在系統中獲得焦點的狀態,此時使用者可以與該程式進行互動,對程式進行直接操作。

        Paused 是指Activity在系統中未獲得焦點,但對使用者來說仍然可視的狀態,該Activity上層可能有一個透明、對於使用者不可見的Activity層或者有一個Dialog樣式的Activity層,都會讓Activity進入Paused狀態。此狀態下該Activity無法和使用者進行直接互動。

        Stopped是當該Activity在系統中失去焦點並且上層存在不透明的、非Dialog樣式的Activity(即對使用者不可視)的狀態。此狀態下,該Activity的資料毀在RAM中暫時保留,但是,一旦系統需要記憶體,這種處於Stopped狀態的Activity佔用的RAM空間會優先被清理並重新利用。所以,在Activity處於Stopped狀態時,必須要儲存該Activity的UI狀態,否則一旦RAM空間被重新利用,UI狀態和資料就完全丟失。

        Killed是指Activity在RAM中被移除或者說關閉的狀態。也就是說此時Activity處於關閉的狀態,不佔用RAM空間。

        在Android Studio中,當我們建立一個新的Activity時,會自動幫我們寫一個onCreate()方法,而在Activity執行的各個階段,程式會呼叫的方法不只是onCreate(),還包含onStart(),onResume(),onPause(),onStop(),onDestory(),onRestart(),共七個方法。下圖是Activity物件生命週期呼叫各種方法的流程圖:


        其中onCreate()用於建立Activity,onStart()用於啟動Activity,onResume()用於恢復Activity,onPause()用於暫停Activity,onStop()用於停止Activity,onRestart()用於重啟Activity,onDestory()用於銷燬Actvivity。