5

我有一个主要活动(Main)和另一个从 Main 调用的活动(Sub)

startActivityForResult(new Intent(this, SubActivity.class), 25); 

当我在 Sub 时,我终止了进程(使用任务管理器或 by adb shell kill <pid>),然后重新打开应用程序,我立即被带到 Sub。

在 Sub 中,我有这段代码可以回调到 Main 活动:

setResult(RESULT_OK, data);
finish();

onActivityResult如果我没有终止进程,我会收到 requestCode (25)、resultCode (RESULT_OK) 和数据。但是在这种情况下,我被带到主要活动,但onActivityResult 没有被调用。

这是Android的工作方式(我没想到),还是我的方法有问题?


更新:这发生在我的 Nexus One、CyanogenMod 7.0.2、Android 2.3.3 上。我尝试使用模拟器 API 10,Android 2.3.4,它按预期工作,onActivityResult在我终止进程后仍然被调用。

4

2 回答 2

0

我遇到了同样的问题,我解决了它,替换了将结果存储到共享首选项中的 startActivityForResult 功能,并稍后在 onResume 中加载它们。这是完整解决方案的链接。

于 2013-05-31T14:54:56.370 回答
0

我认为问题不是为什么onActivityResult不被调用,而是为什么当你杀死你的应用程序时第二个仍然活着。你是不是把 Toast 消息放在 Main 和 Sub 的生命周期方法中,只是为了检查调用了哪些方法?

于 2011-06-13T09:29:25.967 回答