Activity有四种模式:standard(标准启动模式)、singleTop、singleTask、singleInstance

注: Aty1_1和Aty2_1为两个不同的Activity,Aty1_1和Aty1_2为同一个Activity中的不同实例。

1. standard

    不同的Activity在同一个栈中,

    每次创建新实例的时候,新实例便会堆放到栈顶。

    

      当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。

2. singleTop

    不同的Activity在同一个栈中。   

    ① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。

    

    ② 如果Aty_1不在栈顶,此时再创建一个Aty1的实例,会产生一个新的Aty1实例到栈顶。

    

    当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。

    

3. singleTask

    不同的Activity在同一个栈中。

    ① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。

  

    ② 如果Aty_1不在栈顶,此时再创建一个Aty1的实例,页面会返回到任务栈中存在的Aty1的实例,并将Aty1上面所有的实例移出栈。

    

    当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。

4. singleInstance

    不同的Activity 处于不同栈中

    ① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。

   

    ② 如果此时Aty2的实例还未被创建,则创建的Aty2的实例时会存放到一个新的任务栈中。

    

    ③ 如果此时Aty1的实例已存在且我们在Aty2的页面中创建新的Aty1实例时,则不会创建新的Aty1实例,而是页面跳转到原来任务栈中存在的Aty1的实例,但存放Aty2实例的任务栈仍然存在

    

      

    当点返回键的时候,便会依次销毁相应的任务栈,直至任务栈数为空则退回到系统桌面。

猜你喜欢

转载自blog.csdn.net/boguesfei/article/details/82261777