zoukankan      html  css  js  c++  java
  • Activity启动模式

    在AndroidManifest.xml中<activity>元素的android:launchMode属性设置

    1.standard

    * 默认模式。不需要对launcherMode进行配置

    * 每次调用startActivity()无论如何都会启动新的Activity对象

    2. singleTop

    * 如果被启动的Activity在栈顶,不会启动新的Activity对象;否则,会启动新的Activity对象
    结论1:当收到通知时有可能会跳转到栈顶的activity
    结论2:出现的机会不大

    3.singleTask

    1. 如果被启动的Activity不存在,则创建新的Activity对象
    2. 如果被启动的Activity在本栈中已经存在,则把该Activity之上的其他Activity统统出栈
    3. 如果被启动的Activity存在于后台其他栈上,则把该Activity之上的其他Activity统统出栈,把该Activity与其以下的Activity加入到当前栈中

    这种模式非常常见比如,想要退出整个应用程序。单独一个一个activity退出会比较麻烦。因此考虑:
    (1). 把入口的MainActivity的launchMode设置成singleTask
    (2). 在需要退出应用的时候,调用startActivity(Main)
    (3). 退出MainActivity 整个应用就退出了

    4.singleInstance
    *  给Activity运行在一个独立的task中(task中只有一个Activity)
    activity中通过getTaskId()获得当前activity所在的任务栈id
    共用Activity的时候使用,比如百度地图(BaiduMap)的activity会被Map、Navi、大众点评等应用访问
    注:
    获得任务栈ID的方法
    int taskId = getTaskId();
    textview.setText(this.toString() + ". taskId:" + taskId);

     

  • 相关阅读:
    文件系统操作与磁盘管理
    文件打包与解压缩
    环境变量与文件查找
    Linux目录结构及文件基本操作
    vim3
    vim2
    vim1
    用户管理
    初识
    第一章
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/5302811.html
Copyright © 2011-2022 走看看