iOS UIViewController和Android Activity的主要生命週期事件

將iOS UIViewController和Android Activity的主要生命週期事件放到一起比對,也還是有點意思的,一種天下武功出少林,形變神不變的感覺。

如下:

iOS(UIViewController) Android(Activity)
事件 備註 事件 備註
alloc 分配內存地址,相當於Java的new時的前半段(分配內存),但不包括後半段(類的構造函數)    
init / initWithNibName 初始化對象,初始化數據 onCreate 當第一次調用一個Activity就時執行onCreate,定義UI,初始化成員變量,啓動服務和創建線程等。
loadView 在控制器的view爲nil的時候被調用。 此方法用於以編程的方式創建view的時候用到。注意調用此方式時view還沒有生成。
viewDidLoad view已經生成,可以進行自定義數據、動態創建控件等創造做
此時狀態:Created
    onRestart onRestart()方法則是隻在activity從stopped狀態恢復時纔會被調用
viewWillAppear 視圖出現前(即將出現)調用 onStart onStart方法後Activity處於可見狀態
viewDidAppear 視圖已經出現(出現後)調用 onResume 得到焦點的時候、後臺回到前臺時調用onResume,此方法調用後,Activity可與用戶進行交互;
此時狀態:Visible/Runing(等待事件中)
viewWillDisappear view即將失去焦點、不在前臺顯示時被調用 onPause Activity失去與用戶的交互能力時被調用,如鎖屏、退出、被覆蓋、按Home鍵回到主屏時
此時狀態:Hidden
viewDidDisappear view已經不可見了,但變量等在存在 onStop 當Activity處於不可見狀態的時候就會調用onStop方法。此時適合處理一些較耗時的資源關閉,寫數據庫等操作等。
viewWillUnload 在ios6被廢棄了,因爲Clearing references to views is no longer necessary。    
viewDidUnload    
dealloc 視圖被銷燬時調用,此時適合做在init和viewDidLoad中創建的對象進行釋放。 onDestory 當Activity被銷燬時會調用onDestory方法。此時適合做關閉onCreate中創建的線程、回收可能造成內存泄露的資源等。
此時狀態:Destoryed

另外附上一些官方圖,加深理解:

iOS:


Android:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章