Activity加载模式(Launch mode)

    技术2022-05-20  46

    Activity有四种加载模式:

    1 standard

    2 singleTop

    3 singleTask

    4 singleInstance

     

    1 standard 模式

    1 ) 默认模式,不需要配置 launchMode

    2 intent 跳转时将发送给新的实例。

     

    2 singleTop 模式

    1 intent 跳转时将发送给新的实例。

    2 ) 如果创建 intent 的时候栈顶已经有要创建的 Activity 的实例,则将 intent 发送给该实例,而不发送给新的实例。

    3) 可用来解决栈顶多个重复相同的 Activity 的问题。

     

    3 singleTask 模式

    1 )只创建一个实例。

    2 )当 intent 到来,创建 Activity 的时候,系统会检查栈里面是否已经有该 Activity 的实例。如果有直接将 intent 发送给它。

    4 singleInstance 模式

    1 )只创建一个实例。

    总结

    1 、判断 Activity Task 栈中是否存在是在创建 intent 的时候,而不是在 finish 之后。

    2 standard 模式和 singleTop 模式 intent 跳转时将发送给新的实例,而 singleTask singleInstance 模式只创建一个实例。

    3 、除 singleInstance 模式外,其他三种模式都是在同一个 task 栈中。

    4 singleInstance 模式跳转时会把设置了 singleInstance 模式的 Activity 单独放在一个 task 栈中。实现让别人的程序直接复用你的 Activity

    5 singleInstance 模式的 activity 永远保持在堆栈的顶部(因为它是那个堆栈中唯一的一个 activity )。


    最新回复(0)