我正在阅读有关task亲和的内容&创建了一个包含以下活动的演示应用程序:
据说,具有相同任务亲和力的活动秘密地打开另一个实例的单个实例。
因此,我将每个活动的onResume登录以查看任务id。如果它创建单个实例,那么当我打开D时,它为什么不执行onResume of B,反之亦然。
我读过开发人员的网站和其他帖子,但仍然没有得到如何使用任务亲和力和它的用途,为什么我们应该使用singleInstance呢?
清单:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.danroid.taskaffinity.A"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- android:taskAffinity="com.ando" -->
<activity
android:name="com.example.danroid.taskaffinity.B"
android:label="@string/app_name"
android:taskAffinity="@string/task_affinity" >
</activity>
<activity
android:name="com.example.danroid.taskaffinity.C"
android:label="@string/app_name" >
</activity>
<activity
android:name="com.example.danroid.taskaffinity.D"
android:label="@string/app_name"
android:taskAffinity="@string/task_affinity" >
</activity>
<activity
android:name="com.example.danroid.taskaffinity.E"
android:label="@string/app_name" >
</activity>
</application>发布于 2014-01-27 14:23:09
当您调用startActivity()从一个Activity转换到另一个Activity时,如果没有在Intent标志中设置Intent.FLAG_ACTIVITY_NEW_TASK,那么无论taskAffinity的值如何,新的Activity都将在相同的任务中启动。
但是,如果在Activity标志中设置Intent.FLAG_ACTIVITY_NEW_TASK,则如果新的 Activity 与任务的E 222 taskAffinity E 126具有相同的E 121E 121,则新Activity仍将在相同的任务中启动(这是由根E 232 Activity E 136中的<代码>E 232E 131的<代码>所决定的)。E 237但是,如果新代码>D38有不同的<,新的Activity将在一个新的任务中启动。
根据您的描述,如果在启动新的Intent.FLAG_ACTIVITY_NEW_TASK时不设置Activity,那么所有的活动都将在同一个任务中结束。
https://stackoverflow.com/questions/21374610
复制相似问题