进程被终止后不会调用onActivityResult

时间:2011-06-13 08:58:30

标签: android android-activity activity-lifecycle

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

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

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

在Sub中我有这个代码回调主要活动:

setResult(RESULT_OK, data);
finish();

如果我没有杀死进程,我会收到requestCode(25),resultCode(RESULT_OK)和onActivityResult上的数据。但是在这种情况下,我被带到Main活动,但onActivityResult没有被调用。

这是Android的工作原理(我不指望),或者我的方法有问题吗?


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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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