【Android归纳决】Activity启动模式

1、对于使用standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建
该活动的一个新的实例。
例如A启动A,A再接着启动A,A继续启动A,然后再分别出栈,如图所示
【Android归纳决】Activity启动模式_第1张图片

2、当活动的启动模式指定为 singleTop,在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用
它,不会再创建新的活动实例。
【Android归纳决】Activity启动模式_第2张图片
3、当活动的启动模式指定为 singleTask,每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,
如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。
【Android归纳决】Activity启动模式_第3张图片
4、使用singleInstance 模式就可以解决这个问题,在这种模式下会有一个单独的返回栈来管理这个活动,
不管是哪个应用程序来访问这个活动,都共用的同一个返回栈,也就解决了共享活动实例的问题。
假设B启动A,A启动C,其中A的启动模式为singleInstance,则:

【Android归纳决】Activity启动模式_第4张图片

返回的页面顺序是C-B-A

相关链接:
Fragment生命周期-基于实验的最新总结
Activity生命周期-基于实验的最新总结

你可能感兴趣的:(android,Activity)