android 中activity的啟動模式是singleTask時清除activity的棧頂activity的生命週期小計
安卓開發中經常會涉及到activity啟動模式,當一個activity第singleTASK時 ,清除棧頂的activity的時候,位於棧頂的activity的生命週期是如何走完的呢?這裡做一個小計:
BaseActivity的 啟動模式是singleTask模式
StandOneActivity
StandTwoActivity
StandThreeActivity 這三個activity的啟動模式都是標準模式,
啟動的循序是 BaseActivity ->StandOneActivity->StandTwoActivity->StandThreeActivity
生命週期如下:
BaseActivity.onCreate()
onStart()
onResume()
onPuase()
StandOneActivity.onCreate()
onStart()
onResume()
onPause()
StandTwoActivity.onCreate()
onStart()
onResume()
onPause()
StandThreeActivity.onCreate()
onStart()
onResume()
--------------這裡回到BaseActivity上
StandOneActivity.onStop()
onDestaory()
StandTwoActivity.onStop()
onDestory()
StandThreeActivity.onPause()
BaseActivity.onResume()
StandThreeActivity.onStop()
onDestory()
總的來講,如果一個Activity的啟動模式是SinleTask,在銷燬棧內的其他Activity時 是從其棧頂的底部開始 一個一個的銷燬,直到棧頂的activity 走onPause(),然後啟動SingleTask的Activity,最後才銷燬棧頂的Activity,走onStop及onDestaory