icode icode
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

iqqcode

保持对技术的探索实践与热爱
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 基础内容

  • AndroidCore

    • Activity

    • BroadcastReceiver

    • ContentProvider

    • Android-Service

    • Intent

      • Intent属性详解
      • Intent与IntentFilter
      • Intent的Flag
    • Android UI

    • Components

    • Fragment

    • 网络操作

    • 异步机制

    • 数据存储

    • 学习笔记

    • 自定义View

    • View事件体系

    • Android
    • AndroidCore
    • Intent
    iqqcode
    2021-04-27
    目录

    Intent的Flag

    http://www.tmooc.cn/player/index.shtml?videoId=75E0CB4D963947888B227794CAD6FBC4&courseId=146B71F361674468892A99F54EDA498C

    在Intent中设置Flag:

    调用Intent的setFlags()或addFlags()可以配置Intent的Flag属性

    # FLAG_ACTIVITY_NEW_TASK

    尝试开启新的Task,可能产生的效果:

    • 如果当前已有Task与尝试激活的Activity的taskAffinity相同,则在该Task中直接压栈,被激活的Activity获得栈顶位置;
    • 如果当前没有Task与尝试激活的Activity的taskAffinity相同,则创建新的Task,且被激活的Activity获得栈顶位置。

    【例如】:APP1中存在ActivityA与ActivityB,当前ActivityA已经激活,通过APP2 激活APP1的ActivityB,回到桌面并点击APP1的图标,会直接显示ActivityB,在整个过程中,APP1的2个Activity的Task ID相同,APP2的Activity是另一个Task ID。

    # FLAG_ACTIVITY_CLEAR_TASK

    • 清空被激活的Activity应该归属的Task,且被激活的Activity添加到该Task中获得栈顶位置。

    • 该Flag应与FLAG_ACTIVITY_NEW_TASK一同使用。

    # FLAG_ACTIVITY_SINGLE_TOP

    位于栈顶时唯一,其特性可参考将<activity>中launchMode属性配置为singleTop。

    【与SingleTop区别】:如果在Activity中配置,则该Activity一直都是SingleTop,而使用Intent的Flag可以仅在动态使用时为singleTop

    # FLAG_ACTIVITY_CLEAR_TOP 清除顶部

    可能产生的效果:

    【情景1】:当Intent尝试激活的Activity的实例在Task中不存在时,创建该Activity的实例,并获得栈顶位置;

    【情景2】:如果该Activity的实例已经存在,则清除Task中该实例之上的所有Activity(效果等同于singleTask),且获得栈顶位置;

    【情景3】:在情景2的基础上,如果该Activity的launchMode属性不是singleTask或singleInstance时,该Activity原本存在的实例也会被移除,位于栈顶的是新创建的该Activity的实例。

    # FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

    当Task被Reset时,清除该Activity及在Task中位于该Activity之上的所有Activity。

    当Task被置于后台,且重新被置于前台时,则可能被Reset(由系统添加FLAG_ACTIVITY_RESET_TASK_JF_NEEDED),通常通过点击应用程序图标回到前台时会Reset,而通过任务列表则不会。

    # FLAG_ACTIVITY_NO_HISTORY

    当Activity被置于后台之后,是否将其从Back Stack中清除并结束,其特性可参考<activity>的noHistory属性。

    编辑 (opens new window)
    #intent
    上次更新: 2022/03/27, 22:58:50
    Intent与IntentFilter
    通用属性

    ← Intent与IntentFilter 通用属性→

    最近更新
    01
    匿名内部类
    10-08
    02
    函数式接口
    10-08
    03
    ARouter-Kotlin踩坑
    10-05
    更多文章>
    Theme by Vdoing | Copyright © 2021-2023 iqqcode | MIT License | 备案号-京ICP备2021028793号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×