tho*_*aus 18 android android-intent android-activity
到目前为止,我成功使用了startActivity函数,现在我需要使用startActivityResult,我遇到了问题.
使用此函数时,我希望启动的活动正确启动,但似乎永远不会调用onActivityResult函数.
以下是我在FriendPicker活动中的代码,以表示MoodPicker活动:
Intent intent = new Intent(FriendPicker.this, MoodPicker.class);
startActivityForResult(intent, 2);
Run Code Online (Sandbox Code Playgroud)
这是我在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;
}
}
Run Code Online (Sandbox Code Playgroud)
并且我的日志文件中没有任何内容(我当然检查了我的日志文件是否正常工作并使用文本视图输出进行双重检查).
有没有我忘记在Manifest文件中声明的内容?
提前致谢.
小智 28
我有同样的问题并解决了它:只需删除
android:launchMode="singleInstance"
Run Code Online (Sandbox Code Playgroud)
Xav*_*Gil 19
就我而言,我没有意识到我是startActivityForResult
从一个android:noHistory
在清单中将属性设置为true 的活动调用的.因此,onActivityResult
从未调用过,因为没有活动实例了.
如果我正确阅读,所有引用的代码都必须在"FriendPicker"中.在"MoodPicker"中,您需要这样的代码来设置结果并结束自己:
this.setResult(SUCCESS_RETURN_CODE, i);
this.finish();
Run Code Online (Sandbox Code Playgroud)
如果这有帮助,请告诉我......
android:noHistory="true"
Run Code Online (Sandbox Code Playgroud)
喜欢
android:launchMode="singleInstance"
Run Code Online (Sandbox Code Playgroud)
将从接收结果停止onActivityResult.
android API中有bug.在startActivityForResult(intent,requestCode)中; 只要requestCode = 0,这个功能就可以工作.但是,如果将请求代码更改为零以外的任何值,ApiDemos将失败(并且不会调用OnActivityResult).在这里找到:
[编辑:链接已被删除,因为Google群组因垃圾邮件而超支]
归档时间: |
|
查看次数: |
26960 次 |
最近记录: |