Android Activity初學,經驗分享與基礎知識,

粗略的講一講什麼是Activity,在我理解,就是呈現給用戶的每一個界面都是Activity,其主要用於與用戶進行交互,自己的應用也是通過Activity給予用戶最直觀的體驗。

1.什麼是返回棧:
返回棧就是一個用於存儲Activity的棧,每當你啓動一個新的Activity的時候,舊的Activity就會被覆蓋,然後你按下Back鍵的時候,舊的Activity又會彈出來,這就是一個棧的原理,新的Activity位於棧頂,舊的就在棧頂下。以此類推,每當你創建一個新的Activity的時候,就會入棧,Back或者Finish一個Activity的時候,就會彈棧。
返回棧示意圖

2.Activity的活動狀態:

(1):運行狀態
當一個活動位於返回棧頂位置時候,這時候這個活動就處於運行狀態。(2):暫停狀態:
當一個活動不在處於返回棧頂時,但仍然可見,沒有被完全覆蓋,那麼這個活動就進入了暫停狀態。當內存極低的情況下,可能會被回收。
(3):停止狀態:
當一個活動不處於棧頂,切完全不可見的時候就會處於停止狀態,系統雖然會保存當前的數據和成員變量。但是當內存在別的地方被需要的時候,會回收停止狀態活動。當前數據和成員變量也會被清除。
(4):銷燬狀態:
當一個活動從返回棧被清除的時候就會成爲銷燬狀態,系統會最傾向於回收這類活動來保存手機內存充足。

3.活動的生存期:
onCreate:當活動第一次被創建的時候調用
onStart:當活動由不可見變爲可見的時候調用
onResume:當活動準備好和用戶交互的時候調用,此時活動一定會處於棧頂。
onPasue:當系統準備去啓動或者回復另一個活動的時候調用.
onStop:當活動完全不可見的時候調用
onDestory:當活動被摧毀前調用
onRestrat:當活動由停止變爲運行的時候調用。
完整週期:活動在onCreate和onDestory()方法之間經歷的就是完整週期。
可見生存週期:活動在onStart()和onStop()之間經歷的就是可見生存期.
前臺生存週期:onResum()和onPause()之間經歷的就是前臺生存週期。

如圖所示,官方的Activity的生命週期圖示:
Activity生命週期圖

4.活動被回收了,數據需要保存怎麼辦?
前面說了,如果活動是Stop狀態,可能也會被系統回收,那麼我們所需要的數據也可能被清除,那麼如何進行保存呢,這裏我們就可以用到

onSaveInStanceState()
這個方法會攜帶一個Bundle來存儲我們需要保存的數據。

public void onSaveInStanceState(Bundle bundle){
    super...
    String str = "Save it";
    bundle.puString("data_key",str);
}

這樣當這個活動被回收以後,再次啓動這個活動執行onCreate方法的時候進行判斷就可以了。

public void onCreate(Bundle save...){
    supre....
    setCon...
    if(save..!=null){
        String tempData = save... .getString("data_key");
    } 
}

這樣就可以得到我們之前所需要的數據了,方法我只是簡寫了一下。
這也是我學習Activity的過程記錄,有很多不完善的地方或者缺點請大神多多包涵,我只是爲了記錄一下自己的學習過程。

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