SingleTask活动无法返回结果?

时间:2013-05-04 23:23:01

标签: android android-activity

我遇到了非常奇怪的Android行为。

我有两个活动,A和B. A用startActivityForResult启动B,然后检查B的resultCode。它可以是RESULT_OKRESULT_CANCELLEDRESULT_FIRSTUSER。无论我多努力,每当我从B回来RESULT_FIRSTUSER时,A都会看到RESULT_CANCELLED

出于绝望,我想“也许是因为B是SingleTask活动”,所以我修改了清单并删除了SingleTask定义。这很有效,现在RESULT_FIRSTUSER正确地返回给A.

为什么?

1 个答案:

答案 0 :(得分:4)

startActivityForResult仅在启动的活动与启动活动位于同一任务中时才有效。官方文件http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,int,android.os.Bundle)

  

请注意,此方法只应与定义为返回结果的Intent协议一起使用。在其他协议(例如ACTION_MAIN或ACTION_VIEW)中,您可能无法获得预期的结果。例如,如果您要启动的活动使用singleTask启动模式,它将不会在您的任务中运行,因此您将立即收到取消结果。