FLAG_ACTIVITY_CLEAR_TOP:「建议收藏」

FLAG_ACTIVITY_CLEAR_TOP:「建议收藏」FLAG_ACTIVITY_CLEAR_TOP:例如现在的栈情况为:ABCD。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP标记,则栈情况变为:AB。如果没有添加这个标记,则栈情况将会变成:ABCDB。也就是说,如果添加了FLAG_ACTIVITY_CLEAR_TOP标记,并且目标Activity在栈中已经存在,则将会把

大家好,又见面了,我是你们的朋友全栈君。

FLAG_ACTIVITY_CLEAR_TOP

例如现在的栈情况为:A B C D。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP标记,则栈情况变为:AB。如果没有添加这个标记,则栈情况将会变成:A B C D B。也就是说,如果添加了FLAG_ACTIVITY_CLEAR_TOP标记,并且目标Activity在栈中已经存在,则将会把位于该目标activity之上的activity从栈中弹出销毁。这跟上面把B的Launchmode设置成singleTask类似。

 

FLAG_ACTIVITY_NEW_TASK

例如现在栈1的情况是:A BC。C通过intent跳转到D,并且这个intent添加了FLAG_ACTIVITY_NEW_TASK标记,如果D这个Activity在Manifest.xml中的声明中添加了Taskaffinity,并且和栈1的affinity不同,系统首先会查找有没有和D的Taskaffinity相同的task栈存在,如果有存在,将D压入那个栈,如果不存在则会新建一个D的affinity的栈将其压入。如果D的Taskaffinity默认没有设置,或者和栈1的affinity相同,则会把其压入栈1,变成:A B CD,这样就和不加FLAG_ACTIVITY_NEW_TASK标记效果是一样的了。

注意:如果试图从非activity的非正常途径启动一个activity,比如,从一个service中启动一个activity,则intent必须要添加FLAG_ACTIVITY_NEW_TASK标记。

 

FLAG_ACTIVITY_NO_HISTORY

例如现在栈情况为:A BC。C通过intent跳转到D,这个intent添加FLAG_ACTIVITY_NO_HISTORY标志,则此时界面显示D的内容,但是它并不会压入栈中。如果按返回键,返回到C,栈的情况还是:AB C。如果此时D中又跳转到E,栈的情况变为:A B C E,此时按返回键会回到C,因为D根本就没有被压入栈中。

 FLAG_ACTIVITY_SINGLE_TOP:和上面Activity的Launchmode的singleTop类似。如果某个intent添加了这个标志,并且这个intent的目标activity就是栈顶的activity,那么将不会新建一个实例压入栈中。

 /Activity的主要属性:(在AndroidManifest.xml中 <activity Android:XXX  />)

allowTaskReparenting:设置成true时,和Intent的FLAG_ACTIVITY_NEW_TASK标记类似。

alwaysRetainTaskStat:   如果用户长时间将某个task移入后台,则系统会将该task的栈内容弹出只剩下栈底的activity,此时用户再返回,则只能看到根activity了。如果栈底的activity的这个属性设置成true,则将阻止这一行为,从而保留所有的栈内容。

clearTaskOnLaunch:根activity的这个属性设置成true时,和上面的alwaysRetainTaskStat的属性为true情况搞好相反。

finishOnTaskLaunch:对于任何activity,如果它的这个属性设置成true,则当task被放置到后台,然后重新启动后,该activity将不存在了


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160727.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C++隐藏规则

    在面向对象的开发过程中,经常出现类的继承,这里面出现的成员函数的重载(overload)、覆盖(override)与隐藏(hidden)很容易混淆。首先澄清这3个概念:重载覆盖(派生类函数覆盖基

    2021年12月22日
  • tga文件格式(波形声音文件格式)

    Tga常见的格式有非压缩RGB和压缩RGB两种格式,文件的第三个Byte位作为标记:2为非压缩RGB格式,10为压缩RGB格式。这里的类只实现读取非压缩格式的tga文件。先给出tga文件的文件格式:名称偏移长度说明图像信息字段长度01本字段是1字节无符号整型,指出图像信息字

  • 茅台抢购脚本详细教程, 另已将茅台抢购做成了一个软件

    今天对软件进行了升级,公众号上重新回复茅台获取最新软件!!最新软件解压后如图!以管理员方式运行main.exe软件最后抢购成功是不会主动付款的,要自己去APP支付注意使用茅台软件版抢购的朋友需要自己先去app上预约抢购!!!预约完之后,运行软件,输入2按回车键!,等待到指定时间开始抢购!!!别再问我为什么没动了!因为还没到抢购时间!!别再问我为什么没动了!因为还没到抢购时间!!别再问我为什么没动了!因为还没到抢购时间!!文章上有详细说明的,就不要再问我了!!看文章就对了,问我也

  • 哈佛大学公开课-幸福课-个人笔记

    哈佛大学公开课-幸福课-个人笔记b站视频链接十一讲:养成良好习惯舒适区拉升区 慢慢的做出改变,一步步来。暴力区人的一生一般都是在舒适区度过的,你要让自己适度的走出然后走进拉升区。自律是有一定量的是有限的,用了可能就没有了,需要时间来恢复。我们不可能拥有很多自律,但同时自律也不是那么重要。老师比喻:1.AB—-榨菜与巧克力,A是巧克力-榨菜,B榨菜-巧克力 最后是A先吃了榨菜,因为A在克制自己不…

  • EasyCVR通过Ehome协议接入部分设备显示离线排查报告

    EasyCVR通过Ehome协议接入部分设备显示离线排查报告对于需要将不同视频协议做融合的项目,我们一般都是建议大家选用EasyCVR视频平台,EasyCVR支持多种协议的视频接入,对于通用的第三方协议,我们支持了海康的Ehome和GB28181的国标协议。EasyCVR视频网关平台接入的部分Ehome设备显示离线,可以从下图中看到,除了通过HIKSDK接入的设备外,通过Ehome接入的设备全部离线:可见离线的部分设备都是Ehome协议接入,Ehome设备为主动注册类型,判断设备是否真实在线的方法一般为抓取对应对端口7660的包,或者是在海康sdk的回调

    2022年10月28日
  • java treeset subset_Java TreeSet subSet()方法

    java treeset subset_Java TreeSet subSet()方法JavaTreeSetsubSet()方法java.util.TreeSet.subSet(EfromElement,EtoElement)方法用于返回位于给定范围(包括fromElement和不包括toElement)之间的一组元素。1语法publicSortedSetsubSet(EfromElement,EtoElement)2参数fromElement:这是返回集的最…

    2022年10月31日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号