onActivityResult从不调用

到目前为止,我用成功的startActivity函数,现在我需要使用startActivityResult,我有一个问题。

当使用这个函数时,我期望被启动的活动被正确地启动,但是似乎从来没有调用onActivityResult函数。

这里是我在FriendPicker活动中的代码,以促使MoodPicker活动:

Intent intent = new Intent(FriendPicker.this, MoodPicker.class); startActivityForResult(intent, 2); 

这里是我在MoodPicker活动中的代码:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); Log.i("in OnActivityResult", "Activity Result"); switch (requestCode) { case 2: Log.i("in OnActivityResult", "Activity Resut 2"); break; } } 

并没有写在我的日志文件(我当然,检查我的日志文件工作正常,并仔细检查文本视图输出)。

有没有我忘了在Manifest文件中声明的东西?

提前致谢。

Solutions Collecting From Web of "onActivityResult从不调用"

你在你的MoodPicker类中添加了setResult()调用吗?

我有同样的问题,并解决它:只要删除

 android:launchMode="singleInstance" 

在我的情况下,我没有意识到我从清单中的android:noHistory属性设置为true的活动调用startActivityForResult 。 因此, onActivityResult从来没有被调用,因为没有活动实例了。

如果我正在阅读这个权利,所有引用的代码需要在“FriendPicker”中。 在“MoodPicker”中,你需要这样的代码来设置结果并结束本身:

 this.setResult(SUCCESS_RETURN_CODE, i); this.finish(); 

让我知道这是否有帮助…

Android API有bug。 在startActivityForResult(intent,requestCode); 这个函数只要requestCode = 0就可以工作。但是,如果将请求代码更改为除零以外的任何值,则ApiDemos将失败(并且不会调用OnActivityResult)。 在这里find:

[编辑:链接删除为谷歌组超限与垃圾邮件]

 android:noHistory="true" 

喜欢

 android:launchMode="singleInstance" 

将从接收结果停止onActivityResult。

FriendPicker活动

 Intent intent = new Intent(FriendPicker.this, MoodPicker.class); startActivityForResult(intent, 2); @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); Log.i("in OnActivityResult", "Activity Result"); switch (requestCode) { case 2: if (resultCode == Activity.RESULT_OK) { //optional Log.i("in OnActivityResult", "Activity Resut 2"); } break; } } 

MoodPicker类

 Intent intent = new Intent(MoodPicker.this, FriendPicker.class); setResult(Activity.RESULT_OK, intent); finish(); 

我有使用onActivityResult()相同的问题; 因为我不明白这将如何正确应用,在这里你可以find一个很好的解释如何使用onActivityResult onActivityResult不起作用?

我所犯的错误是,在创build我的意图后,我调用startActivity()而不是startActivityForResult()

有时候简单的会杀了你:)