美文网首页
Activity 启动模式小结

Activity 启动模式小结

作者: HangoX | 来源:发表于2017-11-06 13:33 被阅读15次

    启动模式分为4种,分别为

    1. Standrad
    2. SingleTop
    3. SingleTask
    4. SingleIntance

    Standrad

    就是默认的模式,启动多少个就是多少个

    SingleTop

    SingleTop 需要这样理解,SingleOnTop,当栈顶是我的时候,就不再创建新的实例。
    例如,ABCD,启动D,还是ABCD。如果是ABDC,启动D,最后就变成ABDCD。

    SingleTask

    SingleOnTask的意思,我在这个任务栈是唯一的。需要注意的是,这货启动是默认自带clearTop效果的,也就是会把在它之后的Activity都清楚掉。
    例如,任务栈中有ABDC,启动D,将会变成ABD,C将会被自动推出。

    SingleIntance

    这个可以看做是SingleTask加强版,使用这个属性的Activity,将会被单独放在一个任务栈中,然后这个Activity在进程中都是唯一个的

    一个栗子

    A 属于栈1,BC 属于栈2,A 为standard 模式,BC都是为singleTask模式。启动方式为这样 A->B->C->A->B。这样启动的时候,用户按下返回键就是桌面了。问题主要是在最后启动的B上,singleTask 自带clearTop 属性,将会把CA清除出去,A 和 B 又不是在相同的任务栈上,所以就回到桌面了。

    启动Activity的一些常用的FLAG

    FLAG_ACTIVITY_NEW_TASK

    其实就是SingleTask 模式

    FLAG_ACTIVITY_SINGLE_TOP

    就是singletop

    FLAG_ACTIVITY_CLEAR_TOP

    清除在他最子上的活动,配合NEW_TASK使用

    FLAG_ACTIVITY_EXECULE_FROM_RECENTS

    不出现在最近应用列表中

    小坑

    singleTop的Activity,用startActivityForResult 启动的时候是立刻返回值的,但是是错误的result

    相关文章

      网友评论

          本文标题:Activity 启动模式小结

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