我有一个主要活动(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
。
答案 0 :(得分:0)
我认为问题不是为什么onActivityResult
没有被调用,而是为什么当你杀死你的应用程序时,第二个仍然存在。您是否在Main和Sub的生命周期方法中放置Toast消息,只是为了检查调用哪些方法?
答案 1 :(得分:0)
我遇到了同样的问题,我解决了它取代了将结果存储到共享首选项中的startActivityForResult功能,并稍后在onResume中加载它们。这是完整解决方案的the link。