我正在阅读有关任务亲和性的内容并创建了一个具有以下活动的演示应用程序:
- A
- B ===> 任务亲和力,com.ando
- C
- D ===> 任务亲和力,com.ando
- E
据说,具有相同任务亲和性的活动会秘密打开另一个活动的单个实例。
因此,我在每个活动的 onResume 中登录以查看任务 id。如果它创建单个实例,那么为什么当我打开 D 时它不执行 B 的 onResume ,反之亦然。
我阅读了开发人员网站和其他帖子,但仍然不知道如何使用任务亲和性及其用途,为什么我们不应该使用 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>
你打电话时startActivity()
从一过渡Activity
到另一个,如果你不设置Intent.FLAG_ACTIVITY_NEW_TASK
in the Intent
旗帜,新Activity
将在同一任务中启动,无论其值如何taskAffinity
.
但是,如果您设置Intent.FLAG_ACTIVITY_NEW_TASK
in the Intent
旗帜,新Activity
will still在同一任务中开始如果新的Activity
有相同的taskAffinity
as the taskAffinity
任务的(这是由taskAffinity
根的Activity
在任务中)。但是,如果新Activity
有不同的taskAffinity
, 新的Activity
将在新任务中开始。
根据你的描述,如果你不设置Intent.FLAG_ACTIVITY_NEW_TASK
当开始新的Activity
,那么您的所有活动都将在同一个任务中结束。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)