一個activity被建構執行到結束,會經歷不同的狀態,每一個activity狀態切換完全由Android系統管控。Android系統在變更activity狀態前,會透過呼叫activity的onXX()方法來通知該activity。因此,我們可以覆寫這些方法程式碼,讓Android系統適時地為activity執行特定作業,說明如下:
onCreate(Bundle)
activity第一次被啟動時會執行onCreate,可在onCreate進行只需執行一次的初始化作業,例如,onCreate的引數可能是null或先前由onSaveInstanceState()方法儲存的狀態資訊。
onStart()
表示activity即將變為可視狀態 (visible)。
onResume()
activity即將進入執行中狀態 (Running),表示activity已顯示完成,可以開始與使用者互動。
onPause()
activity即將進入暫停狀態 (Paused),通常是因為別的activity被啟動。一旦activity進入暫停作業中狀態並不保證可以再回到執行中狀態,因此如果需要儲存程式的狀態,應該在onPause()方法中進行。
onStop()
activity即將進入停止狀態 (Stopped),此時使用者已不能與activity互動。如果系統資源不足,Android系統可能會直接將你的process終止,而不會呼叫onStop。
onRestart()
表示activity從stopped狀態再次被啟用。
onDestroy()
表示activity即將被終止 (Destroyed)。如果系統資源不足,Android系統可能會直接將你的process終止,而不會呼叫onDestroy。
onSaveInstanceState(Bundle)
onSaveInstanceState預設會儲存每一介面元件的狀態,一般而言,activity無須覆寫此方法。
onRestoreInstanceState(Bundle)
onRestoreInstanceState預設將activity回復到之前onSaveInstanceState()方法儲存的狀態。一般而言,activity無須覆寫此方法。
onCreate(Bundle)
activity第一次被啟動時會執行onCreate,可在onCreate進行只需執行一次的初始化作業,例如,onCreate的引數可能是null或先前由onSaveInstanceState()方法儲存的狀態資訊。
onStart()
表示activity即將變為可視狀態 (visible)。
onResume()
activity即將進入執行中狀態 (Running),表示activity已顯示完成,可以開始與使用者互動。
onPause()
activity即將進入暫停狀態 (Paused),通常是因為別的activity被啟動。一旦activity進入暫停作業中狀態並不保證可以再回到執行中狀態,因此如果需要儲存程式的狀態,應該在onPause()方法中進行。
onStop()
activity即將進入停止狀態 (Stopped),此時使用者已不能與activity互動。如果系統資源不足,Android系統可能會直接將你的process終止,而不會呼叫onStop。
onRestart()
表示activity從stopped狀態再次被啟用。
onDestroy()
表示activity即將被終止 (Destroyed)。如果系統資源不足,Android系統可能會直接將你的process終止,而不會呼叫onDestroy。
onSaveInstanceState(Bundle)
onSaveInstanceState預設會儲存每一介面元件的狀態,一般而言,activity無須覆寫此方法。
onRestoreInstanceState(Bundle)
onRestoreInstanceState預設將activity回復到之前onSaveInstanceState()方法儲存的狀態。一般而言,activity無須覆寫此方法。
Y修最近我和思竹正在研究Android的生命週期,有興趣大家不妨一齊研究。
回覆刪除我比較好奇 程式進入點從哪裡進入的
回覆刪除因為android沒有 main funtion
是不是從activity開始
然後在setContentView(new ____(this));
開始呼叫並執行後面的程序 是這樣嗎?
目前有許多框架程序都看到main function,因為main function被封裝起來,如VB。Android應用程式大部份都會有Activty,所以在Activity被建立時,會呼叫下面
回覆刪除public void onCreate(Bundle savedInstanceState)
訊息處理函式。
謝謝老師為我解答
回覆刪除不用客氣
回覆刪除