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。
在这里插入图片描述

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