//當Activity展示給用戶看到的時候被調用。如果本Activity處於Activity棧的頂部,則onStrat方法緊隨着onResume方法的調用而調用
public void onStart()
{
super.onStart();
}
//當Activity從停止運行的狀態到開發運行的轉檯的時候被調用
public void onRestart()
{
super.onRestart();
}
//當Activity開始將與用戶進行交互時被調用
public void onResume()
{
super.onResume();
}
//當其它Activity被激活時,當前Activity的onPause將被調用
public void onPause()
{
super.onPause();
}
//當前Activity不再對用戶可見的時候被調用(即可能是一個新的Activity被激活,或者是當前的Activity被銷燬
public void onStop()
{
super.onStop();
}
//當前Activity被銷燬之前。要銷燬一個Activity,可以調用finish()方法。
public void onDestroy()
{
super.onDestroy();
}
從代碼和註釋來看,相信也大概對Activity的生命週期有了一個很好的瞭解,但是對於這幾個方法什麼時候被調用仍然是一頭霧水?現在就看看以下的過程:
假如程序裏面含有Activity,Activity作爲一個主頁面:
程序調用 ----> 程序退出 :
onCreate() -> onStart() ->onResume()
->按回退鍵,退出程序 ->onPause() ->onStop()->onDestroy()
程序調用 ----> 按Home或者是Menu熱鍵
onCreate() -> onStart() -> onResume()
-> 按Home或者是Menu熱鍵 -> onPause() ->onStop()
這個時候Activity並沒有銷燬調,只是放到了後臺上,當然如果你長時間沒有再調用的話,系統又要需要內存來做其它事的話,最後這個Activity也是會銷燬的!
程序調用 ----> 按Home或者是Menu熱鍵 ----> 程序再次調用
onRestart() -> onStart() -> onResume()
-> ..............(後面的方法跟上面的兩種沒有區別)
注意對比一下各種情況程序的調用和退出所調用的方法,自然很容易對Activity的生命週期有深入的瞭解,在應用或者是遊戲的開發上也會有很大的作用!