</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>
网友评论