Android中各組件的生命週期

來源:互聯網
上載者:User

標籤:

 1、Activity生命週期圖

二、activity三種狀態

(1)active:當Activity運行在螢幕前台(處於當前任務活動棧的最上面),此時它擷取了焦點能響應使用者的操作,屬於活動狀態,同一個時刻只會有一個Activity處於活動(Active)。

(2)paused:當Activity失去焦點但仍對使用者可見(如在它之上有另一個透明的Activity或Toast、AlertDialog等快顯視窗時)它處於暫停狀態。暫停Activity仍然是存活狀態(它保留著所有的狀態和成員資訊並保持和視窗管理器的串連),但是當系統記憶體極小時可以被系統殺掉。

(3)stoped:完全被另一個Activity遮擋時處於停止狀態,它仍然在記憶體中保留著所有的狀態和成員資訊。只是對使用者不可見,當其他地方需要記憶體時它往往被系統殺掉。

 

3、activity七個方法

onCreate():當Activity第一次被執行個體化的時候系統會調用,整個生命週期只調用1次這個方法。通常用於初始化設定,為Activity設定所要使用的布局檔案,為按鈕綁定監聽器等靜態設定作業。

onStart():當Activity可見未獲得使用者焦點不能互動時系統會調用。

onRestart():當Activity已經停止然後重新被啟動時系統會調用。

onResume():當Activity可見且獲得使用者焦點互動時系統會調用。

onPause():用來儲存持久資料。到這一步是可見但不可互動的,系統會停止動畫等消耗CPU的事情。從上文的描述已經知道,應該在這裡儲存你的一些資料,因為這個時候你的程式的優先順序降低,有可能被系統收回。

onStop():當Activity被新的Activity完全覆蓋不可見時被系統調用。

onDestroy():當Activity(使用者調用finish()或系統由於記憶體不足)被系統銷毀殺掉時系統調用,(整個生命週期只調用1次)用來釋放onCreate()方法中建立的資源,如結束線程等。

4、android三個嵌套迴圈

(1)Activity完整的生命週期:從第一次調用onCreate()開始直到調用onDestroy()結束。

(2)Activity的可視生命週期:從調用onStart()到相應的調用onStop()。在這兩個方法之間,可以保持顯示Activity所需要的資源。如在onStart()中註冊一個廣播接收者監聽影響你的UI的改變,在onStop()中登出。

(3)Activity的前台生命週期:從調用onResume()到相應的調用onPause()。

5、BroadcastReceiver廣播接收器生命週期

生命週期只有十秒左右,如果在onReceive()內做超過十秒內的事情,就會報ANR(Application No Response)程式無響應的錯誤資訊。它的生命週期為從回調onReceive()方法開始到該方法返回結果後結束。

6、Service服務生命週期

Service完整的生命週期從調用onCreate()開始直到調用onDestroy()結束。

Service有兩種使用方法:(詳細資料可見http://www.cnblogs.com/mengdd/archive/2013/03/24/2979944.html)

(1)以調用Context.startService()啟動,而以調用Context.stopService()結束。這種情況下的Service是通過其他組件調用 startService()被建立。這種service可以無限地運行下去,必須調用stopSelf()方法或者其他組件調用stopService()方法來停止它。當service被停止時,系統會銷毀它。

(2)以調用Context.bindService()方法建立,以調用Context.unbindService()關閉。這種情況下的Service是通過其他組件(一個客戶)調用bindService()來建立的。客戶可以通過一個IBinder介面和service進行通訊。客戶可以通過 unbindService()方法來關閉這種串連。一個service可以同時和多個客戶綁定,當多個客戶都解除綁定之後,系統會銷毀service。

7、一個activity的啟動過程

(1)第一個Activity的啟動順序:onCreate()——>onStart()——>onResume()

(2)當另一個Activity啟動時:第一個Activity onPause()——>第二個Activity onCreate()——>onStart()——>onResume()——>第一個Activity onStop()

(3)當返回到第一個Activity時:第二個Activity onPause()——> 第一個Activity onRestart()——>onStart()——>onResume()——>第二個Activity onStop()——>onDestroy()

每一個Activity都處於某一個狀態,對於開發人員來說,是無法控制其應用程式處於某一個狀態的,這些均由系統來完成。

 

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.