以下是今天讲解Intent的Flag属性的列表:

  1. FLAG_ACTIVITY_BROUGHT_TO_FRONT
  2. FLAG_ACTIVITY_CLEAR_TOP
  3. FLAG_ACTIVITY_NEW_TASK
  4. FLAG_ACTIVITY_NO_ANIMATION
  5. FLAG_ACTIVITY_NO_HISTORY
  6. FLAG_ACTIVITY_REORDER_TO_FRONT
  7. FLAG_ACTIVITY_SINGLE_TOP

  • 以FLAG_ACTIVITY_BROUGHT_TO_FRONT方式启动Activity

假如当前的Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第1张图片

接着我们在ActivityA中以FLAG_ACTIVITY_BROUGHT_TO_FRONT方式启动ActivityB,这时Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第2张图片

总结:如果以FLAG_ACTIVITY_BROUGHT_TO_FRONT方式启动ActivityB,如果该ActivityB存在在Activity栈中,下次再次启动该ActivityB时,将会把该ActivityB带到栈顶。


  • 以FLAG_ACTIVITY_CLEAR_TOP方式启动Activity

假如当前的Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第3张图片

接着我们在ActivityA中以FLAG_ACTIVITY_CLEAR_TOP方式启动ActivityC,这时Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第4张图片

总结:如果以FLAG_ACTIVITY_CLEAR_TOP启动ActivityC,会将ActivityC之上的Activity(ActivityA、ActivityB)全部弹出。


  • 以FLAG_ACTIVITY_NEW_TASK方式启动Activity

假如当前的Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第5张图片

接着我们在ActivityA中以FLAG_ACTIVITY_NEW_TASK方式启动ActivityC,这时Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第6张图片

总结:如果以FLAG_ACTIVITY_NEW_TASK启动ActivityC,将会重新创建ActivityC并放至栈顶,同样,如果是在同一个Activity(B)中再次启动该Activity(B),这时在栈中会有两个Activity(B)。


  • 以FLAG_ACTIVITY_NO_ANIMATION方式启动Activity

接着我们在ActivityA中以FLAG_ACTIVITY_NO_ANIMATION方式启动ActivityC,这时会禁用启动ActivityC时的过渡动画。


  • 以FLAG_ACTIVITY_NO_HISTORY方式启动Activity

假如当前的Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第7张图片

接着我们在ActivityA中以FLAG_ACTIVITY_NO_HISTORY方式启动ActivityE,再在ActivityE中启动ActivityF,这时Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第8张图片

总结:如果以FLAG_ACTIVITY_NO_HISTORY启动ActivityE,再在ActivityE中启动ActivityF,这时ActivityE是不会保存在Activity栈中。


  • 以FLAG_ACTIVITY_REORDER_TO_FRONT方式启动Activity

假如当前的Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第9张图片

如果以FLAG_ACTIVITY_REORDER_TO_FRONT方式启动ActivityB,这时Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第10张图片

总结:如果以FLAG_ACTIVITY_REORDER_TO_FRONT方式启动ActivityB,这时直接将ActivityB带到栈顶。


  • 以FLAG_ACTIVITY_SINGLE_TOP方式启动Activity

假如当前的Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第11张图片

接着我们在ActivityA中再次启动ActivityA,这时Activity栈如下图:

Android之关于Intent的Flag属性的讲解_第12张图片

总结:如果在ActivityA中以FLAG_ACTIVITY_SINGLE_TOP方式启动ActivityA,这时Activity栈保持不变,并不会重新创建ActivityA。

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/45539333情绪控_

更多相关文章

  1. Android TextView显示html图片
  2. Android EditText加入图片混编显示
  3. android 查看图片、保存图片
  4. android 图片圆角处理
  5. android 显示 网络图片
  6. Android中View(视图)绘制不同状态背景图片原理深入分析以及State
  7. android bitmap(图片)旋转90度
  8. 《android上传图片》

随机推荐

  1. Android(安卓)序列化对象接口Parcelable
  2. android之SeekBar控件用法
  3. Android Hal 分析
  4. android识别 单击和双击事件
  5. Android之SimpleAdapter的使用
  6. Android(安卓)Studio中编码(乱码)问题的解
  7. 关于:Android 如何发送/接收DTMF问题
  8. android中屏幕亮度相关设置
  9. Android 获取XML,DRAWABLE资源
  10. Android柱状图MPAndroidChart使用