Activity有四种加载模式
设置方式 android:launchMode="singleTask"
当通过这种模式来启动Activity时,Android总会为目标
Activity创建一个新的实例,并将该Activity添加到当前 Task栈中.注意,这种方式不会启动新的Task,只是将新的
Activity添加到原有的Task
假设 栈结构为 ABC 再打开C 就会变成 ABCC
该模式和standard模式基本一致,但有一点不同:当将要被 启动的Activity已经位于Task栈顶时,系统不会重新创建 目标Activity实例,而是直接复用Task栈顶的Activity
ABC 再打开C C为singleTop 就会变成 ABCABCD 再打开C C为singleTop 就会变成 ABCDC采用该加载模式时,Activity在同一个Task内只有一个实例.
当系统采用singleTask模式加载Activity时,又分为以下 三种情况:
ABC 再打开B B为singleTask 就会变成 AB在此种加载模式下,无论从哪个Task中启动目标Activity,只会
创建一个目标Activity实例且会用一个全新的Task栈来装载该
Activity实例.并且该Task栈有且仅有一个Activity实例
当系统采用singleInstance模式加载Activity时,又分为以下 两种情况:
A,再打开B,B为singleInstance,就会新建一个栈结构(Task2),栈结构(Task1)中为A,栈结构(Task2)中为B C,那么 栈结构(Task1)中为ACA 也就是显示的是A页面而不是B页面B页面 而不是退出程序Home键 退出程序 再点击后台进程图标显示的是B页面 ,如果点击桌面图标的话则显示的是A页面Home键 就会清空栈结构(Task2) 再次点击后台进入 如果再点后退的话,就会退出程序