Android启动模式的实践

          standard:标准模式

  1. 每次启动app,TaskId都+1

    每次点击按钮,TaskId不变

  2. singleTop:Task顶单例模式

  3. 当将要被启动的Activity已经位于Task栈顶的时候,系统不会重新创建目标Activity的实例,而是直接复用已有的Activity实例

  4. 当将要被启动的Activity没有位于Task栈顶的时候,此时系统会重新创建目标Activity的实例,并且把它加载到Task的栈顶(此时与标准模式完全相同)

  5. singleTask:Task内单例模式(A是standard,B是singleTask)

  6. A->B,Task栈里面由下往上,A->B,B里面点击按钮,跳转到A,A是standard

  7. Task栈里面由下往上,A->B->A,在这个A再点击跳转到B,B是singleTask,系统将B上面所有的Activity移出,让B进入栈顶,此时Task栈里面只有两个,A->B

         

B移除
A移除
B
A

【注意点】:

       如果将要启动的目标Activity已经存在,但是没有位于栈顶,系统会把位于该Activity上面的所有Activity移除Task栈,使得目标activity转入栈顶

singleInstance:全局单例模式

系统保证无论从那个Task中启动目标Activity,只会创建一个目标Activity实例,并会使用一个全新的Task栈来装载该Activity实例

猜你喜欢

转载自blog.csdn.net/u010111008/article/details/102864739