美文网首页
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