activity标签中有一个属性为android:taskAffinity=“String”

如果不设置此属性,默认一个应用程序只有一个栈,这个栈以应用包命为单位。

下面是我做的三个实验:

1、新建两个工程,application01application02

application01设置android:taskAffinity="aaa.aaa"android:allowTaskReparenting="true"

application02也设置android:taskAffinity="aaa.aaa"android:allowTaskReparenting="true"

先运行application01,然后点击home键,让application01运行在后台,再运行application02,现在按返回键,当前显示的是application01mainActivity,再点返回键,回到home页。

但是长按home键,发现运行过的程序只有application01

2、紧接着又在此基础上做了另外一个实验,在application01上新建一个secondActivity,设置

android:taskAffinity="aaa.bbb"android:allowTaskReparenting="true"

mainActivity中startActivity时,设置Intent中flag属性为FLAG_ACTIVITY_NEW_TASK,注意,这里的flag属性必须为newtask。

然后运行application01,点击进入secondActivity,点击home键,让程序回到后台,

然后运行application02,点击返回,当前显示的application01中的mainActivity,再点击返回,显示的是application01secondActivity,跟预期一致。

3、在此基础上堆application01再次修改,增加thirdActivity,设置属性android:taskAffinity="aaa.aaa"android:allowTaskReparenting="true"

并在secondActivity中startActivity时,设置Intent中flag属性为FLAG_ACTIVITY_NEW_TASK

运行application01,点击进入secondActivity,再进入thirdActivity,点击返回,回到mainActivity,在点击返回,回到secondActivity,再点击返回,回到home页面,跟预期一致。


更多相关文章

  1. Android(安卓)Theme的设置
  2. Android平板大屏幕的设置
  3. Android Studio设置HTTP代理
  4. Linux系统添加Android(安卓)SDK环境变量以及设置Android(安卓)St
  5. android 设置透明效果
  6. 文字跑马灯效果
  7. ListView常用属性、方法
  8. Android的SharedPreferences和PreferenceActivity用法
  9. EditView属性大全

随机推荐

  1. android初探
  2. Android 多语言动态切换
  3. Android获取音视频原始流数据方法详解
  4. 从Android 8.0源码的角度剖析Android系统
  5. Android和Java的区别
  6. Android如何加载大图,防止OOM
  7. Google Maps Android(安卓)API V2使用及
  8. 浅谈Android五大布局(一)――LinearLayout
  9. 在Ubuntu16.04上下载并编译Android内核源
  10. Android访问WCF服务(上篇)-服务端开发