美文网首页
Activity启动模式

Activity启动模式

作者: waiwaaa | 来源:发表于2018-08-27 10:29 被阅读0次

4种启动模式:

  • standard:标准模式,系统默认为此模式。每次启动都会新建Activity。新启动的Activity会进入启动它的Activity的栈。
  • singleTop:栈顶复用模式。如果新的Activity已位于任务栈的栈顶,则Activity不会重新创建,onNewIntent方法会调用,onCreate,onStart不会调用。如果新Activity存在但不在栈顶,则会新建Activity
  • singleTask:栈内复用模式。只要Activity在一个栈中存在,都不会重建,同singleTop一样会调用onNewIntent, 默认有clearTop效果。如果指定TaskAffinity,会先查找栈,不存在要重新创建新栈再加入。
  • singleInstance:单例模式。除具有singleTask模式特式外,具有此模式的Activity只能单独位于一个任务栈中。
c

Activity启动所需的任务栈,默认下名称为应用的包名。 主要与singleTask启动模式或者allowTaskReparenting属性配合使用。

与singleTask配合使用

它是具有该模式的Activity的目前任务栈名字,待启动的Activity会运行在名字和TaskAffinity相同的任务栈中。

与allowTaskReparenting结合

如果 应用A启动应用B的Activity C, allowTaskReparenting设置为true。如果再次启动应用B,则Activity C会从应用A转移到应用B,会直接显于ActivityC

常用Flags

有的Flags可以设定Activity的启动模式,如

  • FLAG_ACTIVITY_NEW_TASK 指定singleTask启动模式
  • FLAG_ACTIVITY_ACTIVITY_SINGLE_TOP指定singleTop启动模式
  • FLAG_ACTIVITY_CLEAR_TOP 在同一个栈中,位于它上面的activity都要出栈。通常与singleTask一起使用; 如果与standard一起出现,则会它连同它之上的都会出栈,然后再创建新的并放入栈顶

查看任务栈

adb shell dumpsys activity

更多adb命令请点击这里

相关文章

网友评论

      本文标题:Activity启动模式

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