Activity開發之生命週期

 

初學者來理解Activity 的生命週期,可能不會馬上產生多大的感觸,甚至會不解爲什麼要有生命週期這種機制。但是隨着慢慢深入Andorid 的應用開發,你會發現它的重要性。

Activity的三種狀態

Activity 有三種狀態,分別是運行狀態、暫停狀態以及停止狀態。

運行狀態:

當Activity 在屏幕的最前端(位於當前堆棧的頂部),它是可見的、有焦點的。可以用來進行處理用戶的操作(點擊、雙擊、長按等),那麼就叫做激活或運行狀態。值得注意的是,當Activity 處於運行狀態的時候,Android 會儘可能的保持它的運行,即使出現內存不足

等情況,Android 也會先殺死堆棧底部的Activity,來確保運行狀態的Activity 正常運行。

暫停狀態:

在某些情況下,Activity 對用戶來說,仍然是可見的,但不再擁有焦點,即用戶對它的操作是沒用實際意義的。在這個時候,它就是屬於暫停狀態。例如:當最前端的Activity 是個透明或者沒有全屏,那麼下層仍然可見的Activity 就是暫停狀態。暫停的Activity 仍然是激活的(它保留着所有的狀態和成員信息並保持與Activity 管理器的連接),但當內存不足時,可能會被殺死。

停止狀態:

當Activity 完全不可見時,它就處於停止狀態。它仍然保留着當前狀態和成員信息。然而這些對用戶來說,都是不可見的;同暫停狀態一樣,當系統其他地方需要內存時,它也有被殺死的可能。

生命週期事件:

Activity 狀態的變化是人爲操作的,而這些狀態的改變,也會觸發一些事件。我們且叫它生命週期事件。一共有7 個。

void onCreate(Bundle savedInstanceState)

void onStart()

void onRestart()

void onResume()

void onPause()

void onStop()

void onDestroy()

當打開一個Activity,如果該Activity 實例不存在於Activity 管理器中,就會觸發onCreate 事件。注意,Activity 的實例不是我們自己創建的,是Android 系統自己創建的。接下來是onStart 事件,然後是onResume 事件,此時Activity 就處於了運行狀態。

首先要重寫7 個相應被觸發的方法,以日誌的形式輸出相應的事件信息。然後添加兩個Button,一個用來啓動新的Activity,另一個是用來退出當前Activity。

這裏對生命週期做一個總結:

1.Activity 從創建到進入運行狀態所觸發的事件:

onCreate() àonStart() àonResume()

2.當Activity 從運行狀態到停止狀態所觸發的事件:

onPause() àonStop()

3.當Activity 從停止狀態到運行狀態所觸發的事件:

onRestart()àonStart()àonResume()

4. 當Activity 從運行狀態到暫停狀態所觸發的事件:

onPause()

5. 當Activity 從暫停狀態到運行狀態所觸發的事件:

onResume()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章