最近做一个打电话相关的小app,用到了2个平时了解得少的属性,也是看到一个国外相同项目这个做的,开始是直接复制过来的,没去详细了解,项目中期时,随手删了2行配置的属性,由于平时基本没用到,所以以为用处不大,结果出了写小问题,这里记录一下。不废话了,直接贴代码和解释吧,以下是我测试后的个人理解。

        <activity android:name=".callscreen.CallScreenActivity"  android:taskAffinity="com.mythlink.callapp.callScreen"/>        <!--   android:taskAffinity重新分配一个[task]任务名称(其它activity也可使用该名称)                [ps:因为有些项目需求是,点击应用图标必须显示项目主界面,有这个属性就很好办了,把其它activity重新分配一下taskAffinity,                这样就不会显示这些界面了,因为默认的taskAffinity栈顶不是这些activity]。                如果不需要执行activity中的onNewIntent方法,最好是使用android:finishOnTaskLaunch="true",这样更好。        -->                <activity android:name=".settings.ContactSettingActivity" android:finishOnTaskLaunch="true"/>        <!--   android:finishOnTaskLaunch="true"在配置了该属性为true的activity中按home键返回到[home screen]屏幕后,再点击该应用的图标启动程序时,                则系统会调用该activity的[onDestroy]销毁。因为点击应用的图标启动程序时,重新启动了这个任务。                [ps:因为有些项目需求是,点击应用图标必须显示项目的主界面且销毁某些之前打开的界面]。暂时还不会重新启动自己分配的[taskAffinity]任务,                所以只能使用默认系统的taskAffinity,然后点击应用图标启动程序进行触发 。        -->

注意:

  以上2个activity不在同一个task中,如果先打开CallScreenActivity再打开ContactSettingActivity,这时当ContactSettingActivity执行onDestroy后,会返回到跟它相同taskAffinity的activity中,而不是返回到CallScreenActivity界面,只有在这个taskAffinity的栈中没有任何activity时,才会再次返回到上一个taskAffinity中的相应activity界面。

  如果把2个activity都配置为android:launchMode="singleInstance"模式,那么它们都不受task管理,也就是说配置android:finishOnTaskLaunch是无效的。配置android:taskAffinity在这里也失效一部分功能,目前知道它还保留有的功能:就是配置android:excludeFromRecents="true"后,在不同的task中不受影响,且还具备相同的task系统默认返回栈顶activity。

  如果启动模式为singleInstance,那么onActivityResult将会失去作用,它的resultCode会直接返回Activity.RESULT_CANCELED。

更多相关文章

  1. Android 用户界面---XML布局
  2. android项目 R丢失问题 解决
  3. 为Android的界面设计增加跳跃效果
  4. Qt on Android:创建可伸缩界面
  5. Android项目从Eclipse增加支持Android Studio

随机推荐

  1. Android中解析XML的方法
  2. Android之FileOutputStream与openFileOut
  3. 2.1 五种数据存储与共享方式的比较、
  4. Android7.0 禁止锁屏状态的下拉状态栏
  5. 73、ImageView 让图片填充满
  6. 学习Android studio 日常总结
  7. Android的屏幕切换动画—左右滑动切换
  8. android网格布局
  9. android 流式布局 和 RadioGroup自动换行
  10. LCD驱动及Framebuffer相关