原文地址:http://blog.csdn.net/ican87/article/details/21874447
1、Android生命周期圖
2、activity三種狀態(tài)
(1)active:當(dāng)Activity運(yùn)行在屏幕前臺(tái)(處于當(dāng)前任務(wù)活動(dòng)棧的最上面)昨登,此時(shí)它獲取了焦點(diǎn)能響應(yīng)用戶的操作恭应,屬于活動(dòng)狀態(tài)绘搞,同一個(gè)時(shí)刻只會(huì)有一個(gè)Activity處于活動(dòng)(Active)够委。
(2)paused:當(dāng)Activity失去焦點(diǎn)但仍對(duì)用戶可見(jiàn)(如在它之上有另一個(gè)透明的Activity或Toast鄙币、AlertDialog等彈出窗口時(shí))它處于暫停狀態(tài)肃叶。暫停的Activity仍然是存活狀態(tài)(它保留著所有的狀態(tài)和成員信息并保持和窗口管理器的連接),但是當(dāng)系統(tǒng)內(nèi)存極小時(shí)可以被系統(tǒng)殺掉十嘿。
(3)stoped:完全被另一個(gè)Activity遮擋時(shí)處于停止?fàn)顟B(tài)因惭,它仍然在內(nèi)存中保留著所有的狀態(tài)和成員信息。只是對(duì)用戶不可見(jiàn)绩衷,當(dāng)其他地方需要內(nèi)存時(shí)它往往被系統(tǒng)殺掉蹦魔。
3激率、activity七個(gè)方法
onCreate():當(dāng)Activity第一次被實(shí)例化的時(shí)候系統(tǒng)會(huì)調(diào)用,整個(gè)生命周期只調(diào)用1次這個(gè)方法勿决。通常用于初始化設(shè)置乒躺,為Activity設(shè)置所要使用的布局文件,為按鈕綁定監(jiān)聽(tīng)器等靜態(tài)的設(shè)置操作低缩。
onStart():當(dāng)Activity可見(jiàn)未獲得用戶焦點(diǎn)不能交互時(shí)系統(tǒng)會(huì)調(diào)用嘉冒。
onRestart():當(dāng)Activity已經(jīng)停止然后重新被啟動(dòng)時(shí)系統(tǒng)會(huì)調(diào)用。
onResume():當(dāng)Activity可見(jiàn)且獲得用戶焦點(diǎn)能交互時(shí)系統(tǒng)會(huì)調(diào)用表制。
onPause():用來(lái)存儲(chǔ)持久數(shù)據(jù)健爬。到這一步是可見(jiàn)但不可交互的,系統(tǒng)會(huì)停止動(dòng)畫(huà)等消耗CPU的事情么介。從上文的描述已經(jīng)知道娜遵,應(yīng)該在這里保存你的一些數(shù)據(jù),因?yàn)檫@個(gè)時(shí)候你的程序的優(yōu)先級(jí)降低壤短,有可能被系統(tǒng)收回设拟。
onStop():當(dāng)Activity被新的Activity完全覆蓋不可見(jiàn)時(shí)被系統(tǒng)調(diào)用。
onDestroy():當(dāng)Activity(用戶調(diào)用finish()或系統(tǒng)由于內(nèi)存不足)被系統(tǒng)銷(xiāo)毀殺掉時(shí)系統(tǒng)調(diào)用久脯,(整個(gè)生命周期只調(diào)用1次)用來(lái)釋放onCreate()方法中創(chuàng)建的資源纳胧,如結(jié)束線程等。
4帘撰、android三個(gè)嵌套循環(huán)
(1)Activity完整的生命周期:從第一次調(diào)用onCreate()開(kāi)始直到調(diào)用onDestroy()結(jié)束跑慕。
(2)Activity的可視生命周期:從調(diào)用onStart()到相應(yīng)的調(diào)用onStop()。在這兩個(gè)方法之間摧找,可以保持顯示Activity所需要的資源核行。如在onStart()中注冊(cè)一個(gè)廣播接收者監(jiān)聽(tīng)影響你的UI的改變,在onStop()中注銷(xiāo)蹬耘。
(3)Activity的前臺(tái)生命周期:從調(diào)用onResume()到相應(yīng)的調(diào)用onPause()芝雪。
5、BroadcastReceiver廣播接收器生命周期
生命周期只有十秒左右综苔,如果在onReceive()內(nèi)做超過(guò)十秒內(nèi)的事情惩系,就會(huì)報(bào)ANR(Application No Response)程序無(wú)響應(yīng)的錯(cuò)誤信息。它的生命周期為從回調(diào)onReceive()方法開(kāi)始到該方法返回結(jié)果后結(jié)束如筛。
6堡牡、Service服務(wù)生命周期
Service完整的生命周期從調(diào)用onCreate()開(kāi)始直到調(diào)用onDestroy()結(jié)束。
Service有兩種使用方法:
(1)以調(diào)用Context.startService()啟動(dòng)杨刨,而以調(diào)用Context.stopService()結(jié)束悴侵。
(2)以調(diào)用Context.bindService()方法建立,以調(diào)用Context.unbindService()關(guān)閉拭嫁。
7可免、一個(gè)activity的啟動(dòng)過(guò)程
(1)第一個(gè)Activity的啟動(dòng)順序:onCreate()——>onStart()——>onResume()
(2)當(dāng)另一個(gè)Activity啟動(dòng)時(shí):第一個(gè)Activity onPause()——>第二個(gè)Activity onCreate()——>onStart()——>onResume()——>第一個(gè)Activity onStop()
(3)當(dāng)返回到第一個(gè)Activity時(shí):第二個(gè)Activity onPause()——> 第一個(gè)Activity onRestart()——>onStart()——>onResume()——>第二個(gè)Activity onStop()——>onDestroy()
每一個(gè)Activity都處于某一個(gè)狀態(tài),對(duì)于開(kāi)發(fā)者來(lái)說(shuō)做粤,是無(wú)法控制其應(yīng)用程序處于某一個(gè)狀態(tài)的浇借,這些均由系統(tǒng)來(lái)完成。