Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android活动错误地重新设置应用程序任务的父级_Android_Android Intent_Android Activity_Android Manifest_Android Task - Fatal编程技术网

Android活动错误地重新设置应用程序任务的父级

Android活动错误地重新设置应用程序任务的父级,android,android-intent,android-activity,android-manifest,android-task,Android,Android Intent,Android Activity,Android Manifest,Android Task,我有一个应用程序,它具有大多数活动的常规任务行为,但它也有一个活动需要启动到创建它的任务上 此活动是从mime类型启动的。如果其他应用程序启动该活动,则该活动应显示在同一任务中。但是,活动始终被重新设置为其应用程序任务的父级。尽管将allowtaskreeting显式设置为false,但仍然存在这种情况 当应用程序中没有其他活动时,该活动将在其启动的任务中正确启动。它仅在任务中存在应用程序的其他活动时才重新生成父级 我如何使活动仅在其启动的活动之上启动,与同一应用程序的其他活动分开?以下是And

我有一个应用程序,它具有大多数活动的常规任务行为,但它也有一个活动需要启动到创建它的任务上

此活动是从mime类型启动的。如果其他应用程序启动该活动,则该活动应显示在同一任务中。但是,活动始终被重新设置为其应用程序任务的父级。尽管将
allowtaskreeting
显式设置为
false
,但仍然存在这种情况

当应用程序中没有其他活动时,该活动将在其启动的任务中正确启动。它仅在任务中存在应用程序的其他活动时才重新生成父级

我如何使活动仅在其启动的活动之上启动,与同一应用程序的其他活动分开?以下是AndroidManifest.xml的相关部分:

<activity
    android:name="com.matthewmitchell.peercoin_android_wallet.ui.RestoreWalletActivity"
    android:configChanges="orientation|keyboard|keyboardHidden"
    android:theme="@style/My.Theme.Dialog"
    android:allowTaskReparenting="false" >
    <intent-filter android:label="@string/import_keys_intent_filter_action" >
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />

        <data android:mimeType="application/x-peercoin-wallet-backup" />
        <data android:mimeType="application/octet-stream" />
    </intent-filter>
</activity>

您必须在清单的
标记中设置
android:taskafinity=“
。如果没有,则
活动
将具有默认的
任务关联
,这与应用程序中的所有其他活动相同。将
taskAffinity
设置为空字符串会告诉Android该
活动不希望出现在任何特定任务中


这没有很好的文档记录,但是
taskafinity
胜过大多数其他设置。Android将始终尝试查找具有相同
taskafinity
的任务,以启动
活动

谢谢。你说得对。将关联设置为活动的名称效果很好。当使用
标记\活动\新建\任务
时,文档确实说明活动已添加到具有指定关联的任务中。有趣的是,我现在认为我希望活动在主应用程序任务中启动,但我确信这将帮助其他一些人。如果设置了android:taskAffinity=“”,并使用FLAG\u activity\u NEW\u task启动活动。那么新活动是在新任务中打开还是在同一任务中打开?根据android文档,此类活动与任何任务都没有任何关联。