Intent 的Flag属性(Activity在栈位置的主宰者)

Intent 的Flag属性可用来控制Activity在栈中的排列位置,本文列举了常见的Flag.

FLAG_ACTMTY_BROUGHT_TO_FRONT:

如特通过该Flag启动的Activity已经存在,下次再次启动时,将只是将该Activity带到前行。例如现存Activity栈中有Activity A,此时以该旗标启动Activity B(即Activity B是以FLAG_ACTMTY_BROUGHT_TO_FRONT旗标启动的),然后在Activity B中启动C、D,如果此时在Activity D中再启动B,将直接把Activity栈中的Activity
B带到前台。此时Activity栈中情形是A、C、D、B。

FLAG_ACTIVITY_CLEAR_TOP:

该Flag相当于加载模式中的singleTask,通过这种Flag启动的Activity将会把要启动的Activity之外的Activity全部弹出Activity栈。例如,Activity栈中包含A、B、C、D这4个Activity,如果采用该Flag从ActivityD跳转到ActivityB,此时Activity栈中只包含A、B两个Activity。

FLAG_ACTMTY_NEW_TASK:

默认的启动旗标,该旗标控制重新创建一个新的Activity。

FLAG_ACTIVITY_NO_ANIMATION:

该旗标会控制启动Activity时不使用过渡动画。

FLAG_ACTIVITY_NO_HlSTORY:

该旗标控制被启动的Activity将不会保留在Activity栈中。例如Activity栈中原来有A、B、C这三个Activity,此时在Activity C中以该Flag启动Activity D,Activity D再启动Activity E,此时Activity中只有A、B、C、E这4个Activity,Activity D不会保留在Actvity栈中。

FIAG_ACTIVITY_REORDER_TO_FRONT:

该Flag控制如果当前已有该Activtity,直接将该Activity带到前台。例如现在Activity栈中有A、B.C、D这4个Activity,如果使用FIAG_ACTIVITY_REORDER_TO_FRONT旗标来启动Activity B,那么启动后的Activity栈中情形为A、C、D、B。

FLAG_ACTIVITY_SINGLE_TOP:

该Flag相当于加载模式中的singleTop模式,例如原来是A、B、C、D这4个Activity,在Activity D中再次启Activity D依然还是A、B、C、D这4个Activity。

时间: 2024-08-13 02:02:01

Intent 的Flag属性(Activity在栈位置的主宰者)的相关文章

Activity启动模式及Intent的Flag属性对Intent传值的影响

前些时候在支援公司其它部门项目开发的时候,有同事问我:通过Intent在Activity之间进行数据传递,传递的Key和获取的Key都没错,为什么在目标Activity会获取不到传递过来的数据?在Key没错的情况下获取不到数据,那么无疑是Activity的启动模式及在跳转时给Intent设置的Flag属性引起的,于是乎有了今天这篇博客. 原因一:Activity的启动模式 那么Activity以哪种启动模式进行跳转时,会导致目标Activity获取不到传递过来的数据呢?在上一篇Activity启

一起学android之关于Intent的Flag属性的讲解(36)

以下是今天讲解Intent的Flag属性的列表: FLAG_ACTIVITY_BROUGHT_TO_FRONT FLAG_ACTIVITY_CLEAR_TOP FLAG_ACTIVITY_NEW_TASK FLAG_ACTIVITY_NO_ANIMATION FLAG_ACTIVITY_NO_HISTORY FLAG_ACTIVITY_REORDER_TO_FRONT FLAG_ACTIVITY_SINGLE_TOP 以FLAG_ACTIVITY_BROUGHT_TO_FRONT方式启动Acti

使用Intent的Flag设置启动参数

Intent中关于激活Activity的Flag Intent类定义了一批常量,用于配置激活Activity时的相关参数; 在Intent中设置Flag ·调用Intent的setFlags()或addFlags()可配置Intent的Flag属性 属性值介绍: FLAG_ACTIVITY_NEW_TASK ·尝试开启新的Task,可能产生的效果: (1)如果当前已有Task与尝试激活的Activity的taskAffinity相同,则在该Task中直接压栈, 被激活的Activity获得栈顶位

Activity、Task、Application关系+Intent启动Flag

什么是Android  Application? 简单来说,一个apk文件就是一个Application. 任何一个AndroidApplication基本上是由一些Activities组成,当用户与应用程序交互时其所包含的部分Activities具有紧密的逻辑关系,或者各自独立处理不同的响应. 这些Activities捆绑在一起成为了一个处理特定需求的Application,并且以".apk"作为后缀名存在于文件系统中. Android平台默认下的应用程序 例如:Email.Cale

Intent七大属性,Activity的启动方式,横竖屏切换的生命周期,现场保护-->

---------------------------------Intent七大属性------------------------------------- 第一类:启动,有ComponentName(显式),Action(隐式),Category(隐式). 第二类:传值,有Data(隐式),Type(隐式),Extra(隐式.显式). 第三类:启动模式,有Flag. ---------------------------------------Activity的启动方式----------

Intent的Data和Type和Flag属性-amdroid学习之旅(五十一)

Data属性介绍 使用Data和Action属性启动系统Activity 代码示例 public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void btn(View vi

Android群英传笔记——第八章:Activity与Activity调用栈分析

Android群英传笔记--第八章:Activity与Activity调用栈分析 开篇,我们陈述一下Activity,Activity是整个应用用户交互的核心组件,了解Activity的工作模式,生命周期和管理方式,是了解Android的基础,本节主讲 Activity的生命周期与工作模式 Activity调用栈管理 一.Activity Activity作为四大组建出现平率最高的组件,我们在哪里都能看到他,就让我们一起先来了解一下他的生命周期 1.起源 Activity是用户交互的第一接口,他

android之Intent的七大属性

Intent用于封装程序的"调用意图".两个Activity之间,可以把需要交换的数据,封装成Bundle对象,然后使用Intent对象,携带数据到另一个Activity中.实现两个Activity的数据交换. Intent还是各种应用程序组件之间通信的重要媒介.启动Activity.Service.BroadcastReceiver,都需要使用Intent. Intent还有一个好处,如果应用程序只是想启动具有某种特征的组件,并不想和某个具体的组件耦合,则可以通过在int ent -

第四章 Activity和Activity调用栈分析 系统信息与安全机制 性能优化

1.Activity生命周期理解生命周期就是两张图:第一张图是回字型的生命周期图第二张图是金字塔型的生命周期图 注意点(1)从stopped状态重新回到前台状态的时候会先调用onRestart方法,然后再调用后续的onStart等方法:(2)启动另一个Activity然后finish,先调用旧Activity的onPause方法,然后调用新的Activity的onCreate->onStart->onResume方法,然后调用旧Activity的onStop->onDestory方法.如