Activity启动模式之FLAG_ACTIVITY_CLEAR_TOP

Activity启动模式之FLAG_ACTIVITY_CLEAR_TOP关于Android的Intent.FLAG_ACTIVITY_CLEAR_TOP如果设置,并且这个Activity已经在当前的Task中运行,因此,不再是重新启动一个这个Activity的实例,而是在这个Activity上方的所有Activity都将关闭然后这个Intent会作为一个新的Intent投递到老的Activity(现在位于顶端)中。例如,假设一个Task中包含这些Act…

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

关于Android的Intent.FLAG_ACTIVITY_CLEAR_TOP

如果设置,并且这个Activity已经在当前的Task中运行,
因此,不再是重新启动一个这个Activity的实例,而是在这个Activity上方的所有Activity都将
关闭然后这个Intent会作为一个新的Intent投递到老的Activity(现在位于顶端)中。 例如:假设
一个Task中包含这些Activity:A,B,C,D。如果D调用了startActivity(),并且包含一个指向
ActivityB的Intent,那么,C和D都将结束,然后B接收到这个Intent,因此,目前stack的状况是
A,B。 上例中正在运行的Activity B既可以在onNewIntent()中接收到这个新的Intent,
也可以把自己关闭然后重新启动来接收这个Intent。


如果它的启动模式声明为“multiple”(默认值),并且你没有在这个Intent中设置FLAG_ACTIVITY_SINGLE_TOP
标志那么它将关闭然后重新创建;对于其它的启动模式,或者在这个Intent中设置FLAG_ACTIVITY_SINGLE_TOP
标志,都将把这个Intent投递到当前这个实例的onNewIntent()中
这个启动模式还可以与FLAG_ACTIVITY_NEW_TASK结合
起来使用用于启动一个Task中的根Activity,它会把那个Task中任何运行的实例
带入前台,然后清除它直到根Activity。这非常有用,例如,当从Notification Manager处启动一个
Activity。
假如有以下3个Activity
A - B - C
当 B - A - B 跳转的时候,使用Intent的FLAG_ACTIVITY_CLEAR_TOP会让第一个B和第二个A,destory掉
但是当B - A - C跳转的时候不会调用B和A的destory
  • 针对该Intent配置的目标为FLAG_ACTIVITY_CLEAR_TOP, 表示如果在Activity栈中存在该Activity对象则不再创建对象,结束该对象之上的所有Activity回到该Activity上

  • 上面当A跳C的时候不满足此条件。
    当然如果你想实现这个效果可以使用:
    it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);

与君共勉

我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天
这里写图片描述

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160773.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html超链接悬浮,下列css代码,能控制鼠标悬浮其上的超链接样式

    html超链接悬浮,下列css代码,能控制鼠标悬浮其上的超链接样式摘要:下列不属特性品的主要质量于食。标悬置为将E1端道化的命令是非信方式口设。新中国成0年立7来,上的式特色民主协商中国局面)的成(已形,特色提供中国主义制度障要保为建完善立和了重社会。…下列不属特性品的主要质量于食。变动成本法下,制鼠包括期间成本。标悬置为将E1端道化的命令是非信方式口设。在全基础竣后的售的()内程报业务完成后交付应数据。些积制度作用建立极的有哪务员和完回避善公。特点休的公务…

    2022年7月19日
  • java数独解法[通俗易懂]

    java数独解法[通俗易懂]玩了好久的数独,前几天突发奇想写一个解法,看了好多文章和源码,像回溯法和唯一解法,都不太理解其思路,于是就自己动手写了一个,效率还算可以,有优化的空间,但是懒得优化了。整体的解法思路就是列出每个空格的备选数,然后逐一尝试,可谓是最笨的解法了,分享给大家图个乐,还希望大佬看到了可以指点一下里面的不足之处。同样因为懒,就没做成web应用,一个main方法自己跑着玩了就。代码里面包含了1-5级的数独…

    2022年10月22日
  • 1024代理服务器网站,1024hgc.com服务器iP「建议收藏」

    2021-07-26—–2021-08-10172.67.24.1612021-07-26—–2021-08-10104.22.46.962021-07-26—–2021-08-10104.22.47.962021-03-25—–2021-07-26104.26.3.652021-03-25—–2021-07-26104.26.2.652021-03-25—–2…

    2022年4月9日
  • linux创建文件

    linux创建文件转载自:https://www.cnblogs.com/lclq/p/5741852.htmlLinux命令(1)-创建文件1.可以使用cat创建一个新的文件  命令:cat>>filename  使用cat创建文件时,以系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件的内容。输入结束时按Ctrl+d退出并保存文件。    另外,使用catfilename命令可以查看文件内…

    2022年6月29日
  • vs2008sp1补丁怎么安装_win10系统怎么安装cad2005

    vs2008sp1补丁怎么安装_win10系统怎么安装cad2005我第一次安装这个补丁的时候就挂了,搞得VS2005和相关的一些程序都不能运行,后来在网上找到了一些解决方法,结合自己的实际体验,写了这篇教程。补丁相关资料:简体中文版补丁名称:VS80sp1-KB926604-X86-CHS.exe版本:50727.762知识库(KB)文章:KB928957发布日期:2006/12/14简体中文版补丁大小:430

    2022年9月28日
  • python画数据图_python数据分析库

    python画数据图_python数据分析库之前学习了matplotlib.pyplot函数的使用方法,今天研究一下新工具pylab:pylab是matplotlib面向对象绘图库的一个接口,它的语法和Matlab十分相近,主要的绘图命令和Matlab对应的命令有相似的参数。简单的实例:frompylabimport*X=np.linspace(-np.pi,np.pi,256,endpoint=Tru

    2022年11月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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