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属性必须为new task。

然后运行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 自定义控件属性
  2. [转]Android EditView属性
  3. android 笔记 --- Android应用程序的权限列表
  4. 关于声明文件中android:process属性说明
  5. View组件之各xml属性
  6. android 最全的shape属性
  7. android:cacheColorHint,android:listSelector属性作用
  8. 2、创建android应用程序
  9. TextView的drawable属性

随机推荐

  1. 多重复制架构下的MySQL升级实践:5.1-5.5
  2. percona mysql 5.7再centerOS 7上的安装
  3. DBExportDoc V1.0 For MySQL Windows64位
  4. sqlloader导出数据和导入数据
  5. ADO-excel,SQL查询中的问题
  6. 使用 docker-compose 安装 MySQL 5.5 记
  7. POI往Mysql中,导入导出Excel
  8. mysql的几种SQL语句
  9. sql2005 数据库连接的时候,无法连接外部服
  10. 无法弄清楚mySQL语法错误的来源