原文地址:http://henzil.easymorse.com/?p=481


android中AndroidManifest.xml文件,

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基础UI篇------TextView及其子类
  2. EditText属性大全
  3. Android:Gravity控制格式
  4. Android中RemoteViews的实现
  5. 关于progressbar进度条的显示风格及一些属性的应用
  6. Android(安卓)如何使Edittext不弹出软键盘
  7. android:gravity和android:layout_gravity区别
  8. Android(安卓)ImageView控件的setMaxWidth、setMaxHeight不起作
  9. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果

随机推荐

  1. 苹果Mac最好的视频下载工具:VideoDuke
  2. Mysql+Mycat实现数据库主从同步与读写分
  3. Splunk pipline 管道
  4. yum仓库与sed一般应用
  5. DBA的小学美术功底
  6. 如何使用Safari浏览器的自动创建强密码功
  7. 一文详解RIP路由协议及环路问题!
  8. zookeeper技术介绍
  9. Mac电脑永久删除了文档该怎么找回?
  10. 【资源分享】拥抱开源、分享开源、热爱开