1111-Activity的四种启动模式

</br>

什么是Activity的启动模式

Activity的启动模式是指为一个Activity添加标记,告诉系统应该怎样启动这个Activity

</br>

1. 标准模式(stantard)

1)作用:每次通过Intent打开一个Activity,不管栈中是否已有相同的Activity,都会创建一个新的Activity,并放入栈顶。

2)Activity默认的启动模式

</br>

2. 栈顶复用模式(singleTop)

1)作用:每次通过Intent打开一个启动模式是singleTop的Activity,系统会先判断栈顶中是否有该Activity,如果有,就不会创建新的Activity,如果栈顶没有,即使栈中的其他位置上有相同的Activity,系统也会创建一个新的Activity。

2)当栈顶元素是相同的Activity时,再通过Intent打开同一个Activity不会创建新的对象,但是会调用onNewIntent(Intent) 方法。

</br>

3. 栈内复用模式(singleTask)

1)作用:如果栈中已经有该Activity的实例了,不管它在栈中什么位置,都会重用该Activity实例。如果栈中不存在该实例,则会创建一个新的Activity实例放入栈中。

ClearTop:如果它不在栈顶,就会先把它上面的Activity实例先销毁掉,只到它成为栈顶元素。
ABCED  启动C  ABC

2)当重用Activity时,也会调用 onNewIntent(Intent) 方法。

</br>

4. 单实例模式(singleInstance)

1)作用:系统会创建出一个新的栈,在这个新的栈中创建该Activity实例,并让多个应用共享该栈中的该Activity实例。

2)全局单例:一旦该模式的Activity的实例存在于某个栈中,任何应用再激活该Activity时,都会重用该栈中的实例。
其效果相当于多个应用程序共享一个应用,不管谁激活该Activity,都会进入同一个应用中。

可以说整个手机内只有这一个实例。

例如一个应用中打开了百度地图,然后在另一个应用中,也打开百度地图,此时,它会直接进入到刚才的地图画面,按返回时返回到自己的界面。

</br>

    原文作者:方衍
    原文地址: https://www.jianshu.com/p/230ce8627da9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞