美文网首页四大组件
Activity 几种启动模式?每一种模式分别使用什么场景?

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

作者: 酸菜多余丶 | 来源:发表于2019-07-16 13:09 被阅读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

    相关文章

      网友评论

        本文标题:Activity 几种启动模式?每一种模式分别使用什么场景?

        本文链接:https://www.haomeiwen.com/subject/nnwzkctx.html