Android的生命週期學習

來源:互聯網
上載者:User

標籤:前台   登出   sum   img   pad   oba   並且   developer   利用   

     掌握Android的生命週期對於如何一個剛剛接觸Android初學者來說是至關重要的,在然後的開發中會給我留有更多的時刻餘地,當自己正在認識Android中整個聲明周期後,會編寫出更加的流暢的程式

應用程式會擁有更好的使用者體驗的效果

     活動狀態

     在Android中活動中生命週期有四個狀態

    1.運行狀態也稱為顯示狀態:當一個活動處於或者返回棧頂位置,這時候的活動就是處於運行狀態

    2.暫停狀態:當一個活動不再處於棧頂位置時,但是仍然可見,則該活動就進入了暫停狀態

   3.停止狀態:當一個活動不再棧頂位置,並且處於不可時則該活動處於停止狀態

    4.銷毀狀態:當一個活動從返回棧頂中移除就進入銷毀狀態。系統會回收處於這種狀態的活動,從而保證手機系統記憶體充足

     活動周期

   活動循環圖表  先貼一張來自官方文檔(http://developer.android.com/reference/android/app/Activity.html)的圖,相信大家都看到過。

 

方         法                                                                                                   描述                                                                                                                        之後可否被殺死? 下一個方法
onCreate() activity第一次被建立時調用。在這裡你應該完成所有常見的靜態設定工作——建立view、綁定list資料等等。 本方法傳入一個包含了該activity前一個狀態的Bundle對象(如果之前已捕獲了狀態的話,詳見後面的儲存Activity狀態)。

下一個回調方法總是onStart()。

onStart()
onRestart() activity被停止後、又再次被啟動之前調用。

下一個回調方法總是onStart()

onStart()
onStart() activity要顯示給使用者之前調用。

如果activity進入前台,則下一個回調方法是onResume();如果進入隱藏狀態,則下一個回調方法是onStop()。

onResume() 或 onStop()
onResume() activity開始與使用者互動之前調用。這時activity是在activity棧的頂端,使用者可以向其中輸入。

下一個回調方法總是onPause()。

onPause()
onPause() 當系統準備啟動另一個正在恢複的activity時調用。這個方法通常用於把未儲存的改動提交為永久資料、停止動畫播放、以及其它可能消耗CPU的工作等等。 它應該非常迅速地完成工作,因為下一個activity在本方法返回前是不會被恢複啟動並執行。

如果activity返回前台,則下一個回調方法是onResume();如果進入使用者不可見狀態,則下一個是onStop()

可以 onResume() 或 onStop()
onStop() 當activity不再對使用者可見時調用。原因可能是它即將被銷毀、或者其它activity(已有或建立的)被恢複運行並要覆蓋本activity。

如果activity還會回來與使用者互動,則下一個回調方法是onRestart();如果這個activity即將消失,則下一個回調方法是onDestroy()

可以 onRestart() 或 onDestroy()
onDestroy() 在本activity被銷毀前調用。這是activity收到的最後一個調用。 可能是因為activity完成了工作(有些人在這裡調用finish()), 也可能是因為系統為了騰出空間而臨時銷毀activity的本執行個體。 可以利用isFinishing() 方法來區分這兩種情況。 可以

 

  • activity的完整生存期會在 onCreate() 調用和 onDestroy() 調用之間發生。 你的activity應該在 onCreate() 方法裡完成所有“全域global”狀態的設定(比如定義layout),而在onDestroy() 方法裡釋放所有佔用的資源。 例如,如果你的activity有一個後台啟動並執行線程,用於從網路下載資料,那麼你應該在 onCreate() 方法裡建立這個線程並且在 onDestroy() 方法裡停止這個線程。
  • activity的可見生存期會在 onStart() 調用和 onStop() 調用之間發生。在這期間,使用者可在螢幕上看見這個activity並可與之互動。 例如,當一個新的activity啟動後調用了 onStop() 方法,則這個activity就無法被看見了。 在這兩個方法之間,你可以管理那些顯示activity所需的資源。例如,你可以在 onStart() 方法裡註冊一個 BroadcastReceiver 用於監控影響使用者介面的改動。並且當使用者不再看到你的顯示內容時,在 onStop() 方法裡登出掉它。 系統會在activity的整個生存期內多次調用 onStart() 和onStop(), 因為activity可能會在顯示和隱藏之間不斷地來回切換。
  • activity的前台生存期會在 onResume() 調用和 onPause() 之間發生。在這期間,activity是位於螢幕上所有其它的activity之前,並且擁有使用者的輸入焦點。 activity可以頻繁地進入和退出前台——例如, 當裝置進入休眠時或者彈出一個對話方塊時, onPause() 就會被調用。因為這個狀態可能會經常發生轉換,為了避免切換遲緩引起的使用者等待,這兩個方法中的代碼應該相當地輕量化。

 

Android的生命週期學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.