Activity调用第二个Activity但结果是在第二个Activity调用onCreate()之前发回的?

时间:2011-06-30 19:22:04

标签: android android-activity oncreate startactivityforresult

我需要一些帮助。基本上,我有一个活动。这使用startActivityForResult()方法调用第二个Activity(它是同一个应用程序的一部分)。第二个Activity的结果代码在调用第二个Activity的RESULT_CANCEL方法之前返回onCreate()

这令我感到困惑。如果我更改了Intent并调用Android Messaging App Activity而不是我自己的Activity,那么在该Activity完成后,我将正确地获取结果代码

对我来说很明显,当你为结果打电话给自己的活动时,你必须做一些不同的事情。

在Android V2.2上进行测试

2 个答案:

答案 0 :(得分:0)

我最初的想法是尝试在Android清单中使用Intent Filter,并将意图限制为您尝试从中获取结果的单个活动。

我希望这能回答你的问题!

答案 1 :(得分:0)

好的,所以我找到了解决方案。

如果您有一个“singleTask”或“singleInstance”的launchMode,则无法从您的应用程序启动的Activity中收到结果。它将立即返回RESULT_CANCEL。通过将Activity的launchMode更改为“standard”或“singleTop”,这个问题就解决了。

示例:

android:launchMode="standard" //This is the default so if you remove the 
                              //attribute "android:launchMode=" from manifest 
                              //file you should be ok as well.

而不是

android:launchMode="singleTask"

我希望这可以帮助那些遇到同样问题的人。