Android SingleTask活动无法返回结果?
我遇到了非常奇怪的Android行为 我有两个活动,A和B。A以Android SingleTask活动无法返回结果?,android,android-activity,Android,Android Activity,我遇到了非常奇怪的Android行为 我有两个活动,A和B。A以startActivityForResult开始B,然后检查B的结果代码。它可以是RESULT\u OK、RESULT\u CANCELLED或RESULT\u FIRSTUSER。不管我怎么努力,每当我从B返回RESULT\u FIRSTUSER时,一个锯RESULT\u取消了 出于绝望,我想“可能是因为B是一个单任务活动”,所以我修改了清单并删除了SingleTask定义。这已经起作用了,现在RESULT\u FIRSTUSER
startActivityForResult
开始B,然后检查B的结果代码。它可以是RESULT\u OK
、RESULT\u CANCELLED
或RESULT\u FIRSTUSER
。不管我怎么努力,每当我从B返回RESULT\u FIRSTUSER
时,一个锯RESULT\u取消了
出于绝望,我想“可能是因为B是一个单任务活动”,所以我修改了清单并删除了SingleTask
定义。这已经起作用了,现在RESULT\u FIRSTUSER
将返回到一个正确的位置
为什么?只有在正在启动的活动与启动活动处于同一任务中时,startActivityForResult才会起作用。官方文档(位于,int,android.os.Bundle) 请注意,此方法应仅用于定义为返回结果的意图协议。在其他协议(如ACTION_MAIN或ACTION_VIEW)中,您可能无法获得预期的结果。例如,如果您正在启动的活动使用singleTask启动模式,它将不会在您的任务中运行,因此您将立即收到取消结果
startActivityForResult仅在正在启动的活动与启动活动处于同一任务中时才起作用。官方文档(位于,int,android.os.Bundle) 请注意,此方法应仅用于定义为返回结果的意图协议。在其他协议(如ACTION_MAIN或ACTION_VIEW)中,您可能无法获得预期的结果。例如,如果您正在启动的活动使用singleTask启动模式,它将不会在您的任务中运行,因此您将立即收到取消结果
这也解释了为什么我看到我的活动B也开始了两次!这也解释了为什么我看到我的活动B也开始了两次!