2010年5月12日 星期三

Android程式設計(四) Activity生命週期

Activity是Android應用程式的基本作業單元,一個activity從被建構執行到結束,會經歷不同的狀態,包括Starting、Running、Paused、Stopped及Destroyed。
每一個activity狀態切換完全由Android系統管控。任一時刻只會有一個Activity處於Running狀態,其它Activity都會被強制進到其它狀態。Android系統在變更activity狀態前,會透過呼叫activity的onXX()方法來通知該activity。因此,應用程式必須視需要覆寫這些方法,讓Android系統適時地為activity執行特定作業,說明如下:
● onCreate(Bundle)
Activity第一次被啟動時會執行onCreate,可在onCreate進行只需執行一次的初始化作業。
● onStart
表示activity即將變為可視狀態 (visible)。
● onResume
Activity即將進入執行中狀態 (Running),表示activity已顯示完成,可以開始與使用者互動。
● onPause
Activity即將進入暫停狀態 (Paused),通常是因為別的activity被啟動。一旦activity進入暫停作業中狀態並不保證可以再回到執行中狀態,因此如果需要儲存程式的狀態,應該在onPause()方法中進行。
● onStop
Activity即將進入停止狀態 (Stopped),此時使用者已不能與activity互動。如果系統資源不足,Android系統可能會直接將你的process終止,而不會經歷停止狀態 。
● onRestart()
Activity從stopped狀態再次被啟用。
● onDestroy
Activity即將被終止 (Destroyed)。如果系統資源不足,Android系統可能會直接將你的process終止,而不會呼叫onDestroy。
● onSaveInstanceState(Bundle)
onSaveInstanceState預設會儲存每一介面元件的狀態。通常,activity無須覆寫此方法。
● onRestoreInstanceState(Bundle)
onRestoreInstanceState預設將activity回復到之前onSaveInstanceState()方法儲存的狀態。一般而言,activity無須覆寫此方法。

Android程式設計(五) 觀察Activity生命週期