- standard:每次激活一个活动时,都会创建活动实例,并放入任务栈中。
假如激活了第一张图的这些活动,想再激活活动一,则直接新建活动一。
- singleTop:如果想要激活的活动在栈顶,则不需要新建活动实例,否则,需要新建一个活动实例。
比如想激活活动三,如果在栈顶,则不用再重复创建。
- singleTask:如果检测到栈中存在想要激活的活动,则将该活动上面的活动出栈,将想要激活的活动实例放在栈顶。
在上面的图的基础上,如果想激活活动一,则将二三出栈,将活动一放在栈顶。
- singleInstance: 只有一个实例,并且这个实例独立运行在一个task中,并且这个task中只存放这一个活动实例。
扫描二维码关注公众号,回复:
2614600 查看本文章
![](/qrcode.jpg)
测试:(每个活动里的onCreate里都写一个日志)getTaskId是得到Task的id,通过id的不同来证明。
(活动一)Log.e("Activity1","MainActivity1_onCreate_taskID"+getTaskId);
(活动二)Log.e("Activity2","MainActivity2_onCreate_taskID"+getTaskId);
运行结果:
Activity1: Activity1_onCreate_TaskID72
...
Activity2: Activity2_onCreate_TaskID73
每一个活动所在的Task都不同,除了这个模式之外其余三个模式都相同
那这些模式写在哪呢?
例如:singleTop模式。
如果不写,默认standard模式。