android生命週期(詳細總結)

1android生命週期圖android

 

2activity三種狀態佈局

1active:當Activity運行在屏幕前臺(處於當前任務活動棧的最上面),此時它獲取了焦點能響應用戶的操做,屬於活動狀態,同一個時刻只會有一個Activity處於活動(Active)動畫

2paused:當Activity失去焦點但仍對用戶可見(如在它之上有另外一個透明的ActivityToastAlertDialog等彈出窗口時)它處於暫停狀態。暫停的Activity仍然是存活狀態(它保留着全部的狀態和成員信息並保持和窗口管理器的鏈接),可是當系統內存極小時能夠被系統殺掉。spa

3stoped:徹底被另外一個Activity遮擋時處於中止狀態,它仍然在內存中保留着全部的狀態和成員信息。只是對用戶不可見,當其餘地方須要內存時它每每被系統殺掉。線程

3activity七個方法blog

onCreate():當Activity第一次被實例化的時候系統會調用,整個生命週期只調用1次這個方法。一般用於初始化設置,爲Activity設置所要使用的佈局文件,爲按鈕綁定監聽器等靜態的設置操做。生命週期

onStart():當Activity可見未得到用戶焦點不能交互時系統會調用。內存

onRestart():當Activity已經中止而後從新被啓動時系統會調用。資源

onResume():當Activity可見且得到用戶焦點能交互時系統會調用。開發

onPause()用來存儲持久數據。到這一步是可見但不可交互的,系統會中止動畫等消耗CPU的事情。從上文的描述已經知道,應該在這裏保存你的一些數據,由於這個時候你的程序的優先級下降,有可能被系統收回。

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

onDestroy():當Activity(用戶調用finish()或系統因爲內存不足)被系統銷燬殺掉時系統調用,(整個生命週期只調用1次)用來釋放onCreate()方法中建立的資源,如結束線程等。

4android三個嵌套循環

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

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

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

5BroadcastReceiver廣播接收器生命週期

生命週期只有十秒左右,若是在onReceive()內作超過十秒內的事情,就會報ANR(Application No Response)程序無響應的錯誤信息。它的生命週期爲從回調onReceive()方法開始到該方法返回結果後結束。

6Service服務生命週期

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

Service有兩種使用方法:

1)以調用Context.startService()啓動,而以調用Context.stopService()結束。

2)以調用Context.bindService()方法創建,以調用Context.unbindService()關閉。

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都處於某一個狀態,對於開發者來講,是沒法控制其應用程序處於某一個狀態的,這些均由系統來完成。