zoukankan      html  css  js  c++  java
  • 关于activity的启动模式

    在Android中每个界面都是一个Activity ,界面的切换实际上是对不同Activity实例化的过程。而启动模式就决定Activity启动运行方式。

    1、设置方式
    它是在主配置文件中,Activity标签下的一个属性:android:launchMode=""
    2、属性值:
    standard (标准,默认)
      如果不设置一个Activity的启动模式,则该Activity默认的启动模式就是standard,该模式下,每次启动一个该Activity都会
    实例化一个新的Activity对象,并且放入任务栈中。它们都同属于一个Task

    singleTop
    见名知意,该模式为栈顶唯一模式。当Activity处于该模式下的时候,当需要启动此Activity时,会先看此Activity的实例是否存在于
    任务栈栈顶,如果位于栈顶,则重用该实例,不进行实例化。如果任务栈顶不是该Activity,则创建新的Activity,并且压入任务栈内。


    singleTask
    此模式为栈内唯一模式,此模式与栈顶唯一模式不同在于,栈顶唯一模式只看栈顶是否是我们要启动的Activity,而栈内唯一模式要看我们要
    启动的Activity是否位于整个栈内,从上到下检查,若存在,则将该Activity回到栈顶,即将该Activity上面所有的Activity进行出栈操作,
    进行销毁,这样我们需要的Activity将回到栈顶,得到焦点,与用户进行交互。

    singleInstance
    此模式为单一实例模式。处于这种模式下的Activity被启动时,先检测是否有存放该Activity的任务栈,若有则复用相应的Activity,若没有,创建
    新的Activity并放入一个新的任务栈,每个任务栈中只存放一个Activity对象,不可能存在其它Activity对象,处于这种状态下的Activity对象不存在
    回退窗口。


    总之,在Android 开发中,合理运用Activity的启动模式,将大大节省系统内存开销,提高运行效率。
  • 相关阅读:
    Catalyst揭秘 Day6 Physical plan解析
    Spark小课堂Week6 启动日志详解
    Spark小课堂Week5 Scala初探
    java并发再次积累
    java 2017/6/26杂记
    comparator接口与Comparable接口的区别
    ArrayList、Vector、HashMap、HashSet的默认初始容量、加载因子、扩容增量
    Java的快速失败和安全失败
    关于URL和http协议,http消息格式
    java中hashSet原理
  • 原文地址:https://www.cnblogs.com/yangxiu/p/5914025.html
Copyright © 2011-2022 走看看