四大组件

Activity 几种启动模式?每一种模式分别使用什么场景?

2019-07-16  本文已影响1人  酸菜多余丶
1、standard(标准模式)

Activity 的默认启动模式,每次激活 Activity 的时候都会创建一个新的 Activity 实例,并放入任务栈中

使用场景:基本绝大多数地方都可以用。

image
2、singleTop(栈顶模式)

如果在任务的栈顶正好存有该 Activity 的实例,则会通过调用 onNewIntent() 方法进行重用,否则就会同 standard 模式一样,创建新的实例并放入栈顶。即便栈中已经存在了该 Activity 的实例,也会创建新的实例

概括起来就是:当且仅当启动的 Activity 和上一个 Activity 一致的时候才会通过调用 onNewIntent() 方法重用 Activity

使用场景:资讯阅读类 APP 的内容界面。

image
3、singleTask(单实例模式)

只要栈中已经存在了该 Activity 的实例,就会直接调用 onNewIntent() 方法来实现重用实例。重用时,直接让该 Activity 的实例回到栈顶,并且移除之前它上面的所有 Activity 实例。如果栈中不存在这样的实例,则和 standard 模式相同。

使用场景:浏览器的主页面,或者大部分 APP 的主页面。

image
4、singleInstance(任务栈模式)

在一个新栈中创建该 Activity 的实例,并让多个应用共享该栈中的该 Activity 实例。一旦该模式的 Activity 实例已经存在于某个栈中,任何应用再激活该 Activity 时都会重用该栈中的实例依然是调用 onNewIntent() 方法。其效果相当于多个应用共享一个应用,不管是谁激活,该 Activity 都会进入同一个应用中。

Android 系统的来电页面,多次来电均是使用的同一个 Activity 。

image
上一篇下一篇

猜你喜欢

热点阅读