Android:taskAffinityとandroid:finishOnTaskLaunchでお会いしましょう



Android Taskaffinity



元の住所: http://www.cnblogs.com/error404/archive/2012/10/10/2718419.html

  1. <activity android:name='.callscreen.CallScreenActivity' android:taskAffinity='com.mythlink.callapp.callScreen'/>
  2. <activity android:name='.settings.ContactSettingActivity' android:finishOnTaskLaunch='true'/>




注意:

上記の2つのアクティビティは同じタスクではありません。 CallScreenActivityを開いてからContactSettingActivityを開くと、ContactSettingActivityがonDestroyを実行すると、stackAffinityスタックでのみ、CallScreenActivityインターフェイスに戻るのではなく、同じtaskAffinityアクティビティに戻ります。アクティビティが含まれていない場合は、前のtaskAffinityの対応するアクティビティインターフェイスに戻ります。



両方のアクティビティをandroid:launchMode = 'singleInstance'モードに構成した場合、それらはタスクによって管理されません。つまり、android:finishOnTaskLaunchの構成は無効です。 android:taskAffinityを構成すると、ここでいくつかの関数も無効になります。現在、いくつかの関数が保持されていることがわかっています。android:excludeFromRecents = 'true'を構成し、異なるタスクの影響を受けず、同じタスクシステムのデフォルトのリターンスタックトップアクティビティがあります。

起動モードがsingleInstanceの場合、onActivityResultは無効になり、そのresultCodeはActivity.RESULT_CANCELEDを直接返します。