Android之FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET:重置该task时清除该activity

这个标志将会非常有用当你想在你的应用中有个逻辑切换,例如,一个 e-mail的应用可能用于一个命令去显示附件,这个命令启动一个图片浏览的activity去显示附件,这个activity是e-mail应用的一部分,因为它是用户完成这件事情的一部分。但是,当用户离开这个e-mail应用,一段时间过后用户又从home选择这个应用,我们更希望这个时候回到的界面是显示命令用于交互的界面,而不是显示附件的图片界面。通过设置这个标志,当加载图片附件时,包括它本身及它加载的activity在下一次回到该应用时都会删除


实例:

我们有两个activity:MainActivity和ActivityA.,从MainActivity启动ActivityA,我们设置flag FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

    public void onClick(View arg0) {  // TODO Auto-generated method stub  Log.i(TAG, "--onClick--task id = " + getCurrentTaskId());  Intent intent = new Intent("com.leaves.ipanel.ActivityA");      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);  startActivity(intent);   }  



我们看一下这个时候的堆栈:
    ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)  Main stack:  TaskRecord{42593878 #4 A com.leaves.ipanel U 0}  Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.leaves.ipanel/.MainActivity bnds=[163,708][307,852] }  Hist #2: ActivityRecord{4267ccb0 u0 com.leaves.ipanel/.ActivityA}  Intent { act=com.leaves.ipanel.ActivityA flg=0x80000 cmp=com.leaves.ipanel/.ActivityA }         ProcessRecord{4373d460 1722:com.leaves.ipanel/u0a10061}  Hist #1: ActivityRecord{4266be38 u0 com.leaves.ipanel/.MainActivity}  Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.leaves.ipanel/.MainActivity bnds=[163,708][307,852] }  ProcessRecord{4373d460 1722:com.leaves.ipanel/u0a10061}  TaskRecord{426f4820 #2 A com.android.launcher U 0}  Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10600000 cmp=com.android.launcher/com.android.launcher2.Launcher }  Hist #0: ActivityRecord{4291c7b0 u0 com.android.launcher/com.android.launcher2.Launcher}  Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher }  ProcessRecord{4267f0b8 636:com.android.launcher/1000}  



然后我们按home键切换到launch,在从launch上启动该apk,这个时候会进行任务的reset.可以看到,显示的是MainActivity.相关堆栈:

    ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)  Main stack:  TaskRecord{42593878 #4 A com.leaves.ipanel U 0}  Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.leaves.ipanel/.MainActivity bnds=[163,708][307,852] }  Hist #1: ActivityRecord{4266be38 u0 com.leaves.ipanel/.MainActivity}  Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.leaves.ipanel/.MainActivity bnds=[163,708][307,852] }  ProcessRecord{4373d460 1722:com.leaves.ipanel/u0a10061}  TaskRecord{426f4820 #2 A com.android.launcher U 0}  Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10600000 cmp=com.android.launcher/com.android.launcher2.Launcher }  Hist #0: ActivityRecord{4291c7b0 u0 com.android.launcher/com.android.launcher2.Launcher}  Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher }  ProcessRecord{4267f0b8 636:com.android.launcher/1000}  


可以看到ActivityA被销毁了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dom4J 解析xml ,类查询

/*** 从XML文件比对,传入provinceId 返回 provinceShortName * param provinceid* return*/public static String provinceIdEXprovinceCodeFromXml(String provinceid){ String provinceShortName"";try { SAXReader sax new SAXReader(); File filene…

三年租男友回家竟花了10万......

1 不要让别人一天毁了它(素材来源网络,侵删)▼2 每天一个单身小技巧(via.最佳蹲坑读物,侵删)▼3 被封印在木桩里的哆啦A梦(素材来源网络,侵删)▼4 大家的对象都是哪里…

《SAS编程与数据挖掘商业案例》学习笔记之二

继续之前的读书笔记,废话少说,直奔主题。 四.连接数据库的方式 libname形式: Oracle 链接:Libname IBMSHCU oracle userbi passwordbi schemaeduc; DB2链接:libname hsdb db2 userxxx password"xxx" datas…

微信重磅更新!这个功能等了 7 年

腾讯近日发布适用于 Windows 和 macOS 的新版微信客户端,本次主要更新如下:1.自动登录此前微信针对全新“自动登录该设备”功能进行了小范围的测试,本次更新后所有用户都可以使用该功能。当您勾选“自动登录该设备”后,微信将开启…

利用MyBatis Generator自动创建代码

如果你使用过hibernate的eclipse插件自动创建DAO文件,那么就容易理解下面介绍的内容;如果你还没有用过hibernate也无妨。下面介绍使用mybatis 3的eclipse插件自动生成相关文件以及如何使用这些文件。eclipse插件安装地址:http://mybatis.goog…

Navicat Premium 怎么安装比较快

Navicat Premium是一套数据库管理工具,结合其它Navicat成员,支持单一程序同时连接到MySQL、MariaDB、SQL Server、SQLite、Oracle和PostgreSQL数据库。将此工具连接数据库,你可以从中看到各种数据库的详细信息.包括报错,等等.当然…

.netCHARTING图表控件详细介绍及下载

.netCHARTING是一款功能强大的图表控件,利用.NET framework和GDI为工作于ASP.NET和Winform的C#和VB.NET开发人员提供可托管的图表解决方案,提供了多种2D和3D图表类型以及组合图、仪表,完全支持iPhone, iOS, Andoid, WP7 & Tablet &#x…

《SAS编程与数据挖掘商业案例》学习笔记之三

五:set语句 1.keep和drop指定变量进入或者不进入pdv eg: Data d1(keepname) data d2 (keepname sex); set sashelp.class(keepname sex rename(namename_new sexsex_new) where(sexM) firstobs3 obs5); Run; 注: 黄色部分标示只有name …

你距离哈佛学霸到底有多远?实力证明,真正的学霸精神不是智商,而是。。。

▲ 点击查看科学家曾在基于脑科学和认知科学后得出一个“学习的金字塔”理论。就是下面这张图:顶端的就是我们所谓的“知识”,但为了可以达到这个顶端,下面有一系列的支撑能力。而引申出来的核心概念,就叫“玩中学”。不要想当然地…

Android之IPC通信中的UID和PID识别

PCThreadState对象维护了2个变量 pid_t mCallingPid; uid_t mCallingUid; 从变量名称来看,这2个变量保存了进程的PID和UID,并且由于这两个变量由IPCThreadState对象维护,可见它们是与IPC相关的。具体它们保存的是…

通过system调用Am命令执行动作

在底层代码中看到这样一条语句: system("/system/bin/sh -c \"am broadcast -a android.intent.action.AT_AIRPLANE_MODE --ez state true\""); system 这是干什么的啊?? 经google原来system是系统调用,执行一…

在 ASP.NET Core 中使用托管服务实现后台任务

在 ASP.NET Core 中,后台任务作为托管服务实现。托管服务是一个类,具有实现 IHostedService 接口的后台任务逻辑。ASP.NET Core 辅助角色服务模板可作为编写长期服务应用的起点。通过辅助角色服务模板创建的应用将在其项目文件中指定 Worker SDK&#xf…

Framer – 将视觉搞转换为更真实的动态原型

Framer 是一个 JavaScript 框架,简化了创建现实原型,实现完整的3D效果。以一种简单,可读的和强大的方式定义交互和创建动画。 另外还有 Framer Generator 是一个桌面应用程序,从 Photoshop 文件导入资源和和文件夹层次结构。你的…

《SAS编程与数据挖掘商业案例》学习笔记之四

5.双set语句的应用(2个指针,一个pdv) libname chapt3 f:\data_model\book_data\chapt3; data percent; if _n_ 1 then set chapt3.summary(keep cargosum); set chapt3.empcount; pctemps numemps / cargosum; run; 解读:编译后,内存中会出…

现在相亲还要体检报告了?

1 伤害性极大(素材来源网络,侵删)▼2 相亲还要看体检报告?(素材来源网络,侵删)▼3 难以启齿的地名(素材来源网络,侵删)▼4 当知道你不回家之后&#xff08…

.NET 6新特性试用 | System.Text.Json序列化代码自动生成

前言几乎所有.NET序列化程序的实现基础都是反射。下列代码是Newtonsoft.Json的实现:protected virtual JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) {JsonProperty property new JsonProperty();property.PropertyT…

js去除左右空格

function yanzheng(val) {return val.replace(/(^\s*)|(\s*$)/g, "");}function Inputchecking() {var account document.getElementById("txt_ACCOUNT");if (yanzheng(account.value) "") {alert(请输入账号);account.focus();return false;}…

UVa 264 - Count on Cantor

《算法竞赛入门经典》5.4.1的题目,大意是,给出一个数表,如下: 第一项是1/1, 第二项是1/2, 第三项是2/1, 第四项是3/1, 第五项是2/2.....给一个正整数n,求第n项。 设第n个…

《SAS编程与数据挖掘商业案例》学习笔记之五

六:merge语句的使用(一个指针,一个pdv) merge语句是横向合并数据集,合并前必须两个数据集都要按照合并变量进行排序; proc sort datachapt3.merge_a;by x;run; proc sort datachapt3.merge_b;by bx;run; data ed; merge chapt3.me…

他解决了物理学千年争端,成就肩比牛顿、爱因斯坦,但却鲜有人知......

全世界只有3.14 % 的人关注了爆炸吧知识电磁学是经典物理学的一部分,提到电磁学就不得不提经典电动力学创始人-麦克斯韦。麦克斯韦的名气好像并不如牛顿、爱因斯坦那样家喻户晓,毕竟当提到牛顿的时候,这个公式就如同条件反射似得浮现出来&…