activity的四种启动模式的区别

activity的四种启动模式

1.standard

"launchMode"设置为"standard"的

         Activity可以被实例化多次, 可以在Task中的任何位置, 对于一个新的Intent请求就会实例化一次.

2.singleTop

        来了intent, 每次都创建新的实例,仅一个例外:当栈顶的activity 恰恰就是该activity的实例(即需要创建的实例)时,不再创建新实例。这解决了栈顶复用问题

3.singleTask

        来了intent后,检查栈中是否存在该activity的实例,如果存在就把intent发送给它,否则就创建一个新的该activity的实例,放入 一个新的task栈的栈底。肯定位于一个task的栈底,而且栈中只能有它一个该activity实例,但允许其他activity加入该栈。解决了在一 个task中共享一个activity。

        它允许其它Activity压入"singleTask"的Activity

         所在的Task栈,如果有新的Intent请求有此标志的Activity, 则系统会清除有此标志的Task栈中的全部Activity,并把此Activity显示出来.

4.singleInstance

        肯定位于一个task的栈底, 并且是该栈唯一的activity。解决了多个task共享一个activity。

        不允许其它的Activity压入"singleInstance"的Activity所在Task栈,  即整个Task栈中只能有这么一个Activity.


你可能感兴趣的:(android)