Activity的四種啓動模式

Activity四種啓動模式分別是standard,singleTop,singleTask,singltInstance.在執行各個模式時候的頁面中執行的方法各不相同,我們常常只是口頭敘述一下各種模式是怎麼回事,但是真的被問到執行的方法,可能說的不是很清楚,這裏通過打印log的方法記錄一下。

standard模式

從MainActivity進入StandardActivity,執行的方法分別是:onCreate,onStart,onResume,onAttchedToWindow.
從StandardActivity進入StandardTestActivity後執行方法:onPause,onStop.可以看到,當StandardTestActivity執行完onResume後,StandardActivity的onStop方法才執行。

在這裏插入圖片描述

返回的時候可以看到從StandardTestActivity到StandardActivity,StandardActivity執行了onStart,onResume方法,而當StandardActivity的onResume方法執行後,StandardTestActivity執行了onStop,onDestroy,onDetachedFromWindow方法
再次點擊返回從StandardActivity返回到MainActivity頁面,StandardActivity也依次執行了onPause,onStop,onDestroy,onDetachedFromWindow方法

在這裏插入圖片描述

singleTop模式

如圖所示,這裏分兩種情況來看SingleTopActivity方法的執行。

  • singleTop—>singleTop
  • singleTop—>standard—>singleTop

singleTop–>singleTop

可以從圖中看到singleTop->singleTop不再執行依次onCreate,onStart,onResume,而是執行了onNewIntent,onResume.
在這裏插入圖片描述

singleTop–>standard–>singleTop

可以從圖中看到singleTop-->standard-->singleTop中,第二個singleTop依次執行了onCreate,onStart,onResume方法
在這裏插入圖片描述

singleTask模式

如圖所示,同樣分兩種情況來看SingleTaskActivity方法的執行。

  • singleTask—>singleTask
  • singleTask—>standard—>singleTask

singleTask–>singleTask

可以從圖中看到,singleTask->singleTasksingleTop->singleTop類似,也是執行了onNewIntent,onResume方法
在這裏插入圖片描述

singleTask–>standard–>singleTask

可以從圖中看到singleTask-->standard-->singleTask ,進入第二個singleTask的時候,StandardActivity執行的方法相當於finish的操作,也就是被移除了,singleTask則執行了onNewIntent,onStart,onResume方法。
返回的時候直接執行了singleTask的onPause,onStop,onDestroy,onDetachedFromWindow方法
在這裏插入圖片描述在這裏插入圖片描述

singleInstance模式

如圖所示,同樣分兩種情況來看SingleInstanceActivity方法的執行。

  • singleInstance–>singleInstance
  • singleInstance–>standard–>singleInstance

singleInstance–>singleInstance

可以從圖中看到,singleInstance->singleInstance同樣是執行了onNewIntent,onResume,前一個執行了onPause方法
在這裏插入圖片描述

singleInstance–>standard–>singleInstance

可以從圖中看到,前面的一切正常,進入第二個SingleInstanceActivity的時候,執行了onNewIntent,onStart,onResume方法,這個和singleTask是一樣的,但是不同的是SingleInstanceActivity和StandardActivity不在同一個任務棧中。
在這裏插入圖片描述
從下圖可以看到,SingleInstanceActivity點擊返回到了StandardActivity中,再點擊返回,則不再會回到SingleInstanceActivity。
在這裏插入圖片描述

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