在我最近的开发中,我发现了一个问题。例如,如果有两个活动,则表示A和B,B表示SingleTask模式。如果我使用startActivityForResult(B)来启动B Activity,而在B中,当我这样做时
setResult(RESULT_OK);
finish();
结果代码无法传递给Activity A,但如果我删除了AndroidManifest.xml中的SingleTask,则可以设置结果代码。
有人可以帮忙解释一下吗?
答案 0 :(得分:1)
startActivityForResult()
不适用于singleTask
,正如documentation中明确指出的那样。
文档说明:
如果您正在启动的活动使用singleTask启动模式,它将不会在您的任务中运行,因此您将立即收到取消结果。
因此内部Android代码似乎要求活动处于同一个"任务"允许数据来回传播。
你无能为力。不要将singleTask
与startActivityForResult()
一起使用。