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将不存在了


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

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

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


相关推荐

  • mysql explain ref null_MySQL Explain详解[通俗易懂]

    mysql explain ref null_MySQL Explain详解[通俗易懂]MySQLExplain详解简介执行计划(queryExecutionplan)语法explainselect*fromtableexplain中的列expain出来的信息有10列,分别是id,select_type,table、type,partitions,possible_keys,key,key_len,ref,rows,Extra,下面对这些字段出现的可能进行解释:一、I…

    2026年1月18日
    2
  • ubuntu处理locale

    ubuntu处理locale

    2021年6月29日
    83
  • 时序数据特征提取_时间序列提取一维特征

    时序数据特征提取_时间序列提取一维特征时序数据特征提取时间序列的表示方法分段线性表示分段线性表示符号化聚合近似时间序列的相似性度量方法Minkowski距离动态时间弯曲符号化距离基于模型的距离度量方法时间序列的特征提取方法基于统计特征的分类特征提取基于构建模型的分类特征提取基于变换的分类特征提取基于分形理论的分类特征提取特征提取在提高分类的准确性中起着非常关键的作用.对时序特征提取的方法进行归纳分类,将有利于对特征提取整体性,全面性的认识.回顾现有的时间序列中特征提取的方法,将其总结为四大类,它们分别是基于基本统计方法的特征提取、

    2025年8月13日
    5
  • StrictMode使用详解

    StrictMode使用详解StrictMode    StrictMode最常用来捕捉应用程序的主线程,它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policyviolation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。除了主线程,我们还可以在Handler,AsyncTask,AsyncQueryHandler,IntentService等API中使用StrictMod

    2022年6月9日
    33
  • wpf resizemode(介绍自己)

    namespaceWindowsApplication1{///<summary>///InteractionlogicforWindow1.xaml///</summary>publicpartialclassWindow1:Window{publicWindo…

    2022年4月14日
    86
  • CSDN学院免费课程领取教程[通俗易懂]

    CSDN学院免费课程领取教程

    2022年2月12日
    55

发表回复

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

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