在Android中,为什么startActivityForResult不支持SingleTask模式?

时间:2015-06-16 13:49:39

标签: android

在我最近的开发中,我发现了一个问题。例如,如果有两个活动,则表示A和B,B表示SingleTask模式。如果我使用startActivityForResult(B)来启动B Activity,而在B中,当我这样做时

setResult(RESULT_OK);
finish();

结果代码无法传递给Activity A,但如果我删除了AndroidManifest.xml中的SingleTask,则可以设置结果代码。

有人可以帮忙解释一下吗?

1 个答案:

答案 0 :(得分:1)

startActivityForResult()不适用于singleTask,正如documentation中明确指出的那样。

文档说明:

  

如果您正在启动的活动使用singleTask启动模式,它将不会在您的任务中运行,因此您将立即收到取消结果。

因此内部Android代码似乎要求活动处于同一个"任务"允许数据来回传播。

你无能为力。不要将singleTaskstartActivityForResult()一起使用。