gpt4 book ai didi

android - android taskaffinity的使用

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:29 28 4
gpt4 key购买 nike

我正在阅读有关 taskaffinity 的内容并创建了一个包含以下 Activity 的演示应用程序:

  • 一个
  • B ===> taskaffinity, com.ando
  • C
  • D ===> taskaffinity, com.ando
  • E

写到,具有相同taskaffinity的Activity偷偷打开另一个的单实例。

因此,我在每个 Activity 的 onResume 中登录以查看任务 ID。如果它创建单个实例,那么为什么当我打开 D 时它不执行 B 的 onResume,反之亦然。

我阅读了开发者网站和其他帖子,但仍然不知道如何使用 taskaffinity 及其用途,为什么我们不应该改用 singleInstance?

list :

 <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_TASKIntent旗帜,新Activity将在同一任务中启动,而不管 taskAffinity 的值如何.

但是,如果您设置 Intent.FLAG_ACTIVITY_NEW_TASKIntent旗帜,新Activity仍然在同一任务中启动如果新的Activity具有相同的taskAffinity作为 taskAffinity任务的(这由任务中根 taskAffinityActivity 决定)。 但是,如果新的 Activity有一个不同的taskAffinity , 新Activity将在新任务中开始。

根据你的描述,如果你不设置Intent.FLAG_ACTIVITY_NEW_TASK当开始新的 Activity ,那么您的所有 Activity 都将在同一个任务中结束。

关于android - android taskaffinity的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374610/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com