美文网首页
Activity 启动模式

Activity 启动模式

作者: biginsect | 来源:发表于2018-12-11 18:07 被阅读8次

相关定义

  • standard。默认使用的模式,无论此 activity 是否已经存在于任务栈中,都会新建这个 activity 的实例。
  • singleTask。栈内复用模式。若要启动的 activity 已经存在于任务栈中,则弹出至栈顶且在 activity 之上的 同一栈内的 activity 都会出栈。onNewIntent() 方法会被回调,onStart() 和 onResume() 也会被回调。
singleTask 模式的 activity
  • singleTop 。栈顶复用模式。若要启动的 activity 处于 它的任务栈的栈顶,则不会创建新的实例。onNewIntent() 会被回调,onStart()、onResume() 方法也会被调用。
singleTop 模式的 activity.png
  • singleInstance。单实例任务栈模式。此模式下的 activity 单独开启任务栈,这个任务栈只有该 activity 一个实例。后续对 该 activity 的启动都不会创新新的实例,直接复用。onNewIntent() 会被回调(已验证)。

相关任务栈的打印验证

  • MainActivity 与 ThirdActivity 使用默认-standard模式,SecondActivity 设置了singleInstance模式,相关任务栈:
SecondActivity 设置了 singleInstance .png

可以看到 SecondActivity 处于单独的任务栈中,而 ThirdActivity 处于 与 Main 相同的任务栈中。

  • ThirdActivity 跳转至设置了 singleTask 模式的 MainActivity,相关任务栈:
MainActivity 设置 singleTask

可以看到 ThirdActivity 直接被弹出任务栈,设置了singleInstance 模式的 SecondActivity 不受影响。

  • ThirdActivity 跳转至设置了 singleTop 模式的 MainActivity ,相关任务栈:
MainActivity 设置了singleTop.png

MainActivity 不处于任务栈的栈顶,从而创建一个新的 MainActivity 的实例。

相关文章

网友评论

      本文标题:Activity 启动模式

      本文链接:https://www.haomeiwen.com/subject/rxpehqtx.html