android:taskAffinity与android:finishOnTaskLaunch之我见

<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,然后点击应用图标启动程序进行触发 。
-->


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


  以上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。



android:taskAffinity与android:finishOnTaskLaunch之我见



0
0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值