【Android開發那點破事】Android中Activity的生命週期

先給各位拜個年,祝各位新年快樂,馬年行大運!

本期那點破事來聊聊Activity的生命週期。

衆所周知,生命週期這個東西非常重要,比如servlet的生命週期包括init,service(doPost/doGet/...),destroy。這個生命週期就詮釋了整個servlet的一個調用過程,同樣的,在Android中activity也是有生命週期的。

先看個官方的android activity生命週期金字塔圖:


從圖中可以看出,其中有幾個狀態以及怎樣從開始到達金字塔頂端,即resumed狀態;怎樣從金字塔頂到最後的銷燬過程。你不需要全部實現這裏面的方法,但是有幾個重要的你必須要實現,這樣才能保證你的app正確的運行。雖然不實現,但是你必須保證:

1、在用戶手機接收到電話或者切換到別的app時,app不要奔潰。

2、沒有必要時,不要消耗寶貴的系統資源。

3、當用戶離開你的app後,一段時間後回到你的app,儘量保持原始的狀態。

4、當用戶旋轉手機方向時,app不能奔潰,或者丟失當前的用戶信息。


這些狀態當中,不是所有的都是靜態的。只有這3個是:

Resumed狀態: 也可以成爲running狀態,此時activity是在最前面,用戶可以與其交互。

Paused狀態:此時activity是停止狀態,被其他的resumed的activity所覆蓋着。在這種狀態下,活動部分被另一個—其他活動的前景是半透明或不覆蓋整個屏幕。暫停活動不接受用戶輸入並不能執行任何代碼。

Stopped狀態:在這種狀態下,該活動是完全隱藏的,對用戶不可見的,它被認爲是在後臺。停止時,活動實例及其所有成員變量保留等狀態信息,但不能執行任何代碼。

其他狀態(創建並啓動)是系統通過調用下一個生命週期回調方法迅速轉移到下一個狀態。即,系統調用onCreate()後,它迅速調用onStart(),緊接着onResume()。


是不是很簡單,其實就這點破事。

好了今天這個破事就到這裏,其實android開發就這麼點破事。關於其他破事,見專欄:

更多Android開發的破事,請看專欄:《Android開發那點破事》
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章