【发布时间】:2012-07-31 11:44:57
【问题描述】:
我知道有很多相同的问题,但仍然没有调用 OnActivityResult。
这是我的代码
活动 A:
Intent i = new Intent();
Bundle b = new Bundle();
b.putString(ActivityB.LINK, ad.getLink());
i.putExtras(b);
i.setClass(this, ActivityB.class);
startActivityForResult(i, 0);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
/*handling of result...*/
super.onActivityResult(requestCode, resultCode, data);
}
活动 B:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.ad_video);
Bundle b = this.getIntent().getExtras();
setResult(0);
link = b.getString(LINK);
videoView = (VideoView) findViewById(R.id.surface_view);
videoView.setVideoPath(_link);
videoView.requestFocus();
videoView.start();
videoView.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp)
{
setResult(0);
ActivityB.this.finish();
}
});
}
无论我做什么,OnActivityResult 都不会被调用。
基于其他问题
我将 setResult 的值设置为 > 0 (0,99)
在 android manifest 中没有 launchMode(我也试过把 启动模式到标准)
感谢您的帮助
【问题讨论】:
-
你确定不输入onActivityResult?也尽量不要使用 0,这应该不是问题,但我总是在我的代码中避免它。 (作为结果/请求代码)
-
是的,我确定,我也试过 setResult(99) 同样的问题,我的活动是 tabActivity 的活动,如果这会导致问题
-
重要的是,如果您在选项卡 AFAIK 之间切换,您不会完成活动。
-
顺便说一句,我不是说在 setResult 中,我是说在 requestcode 中
-
我在requestCode中也改了,activityA是一个tab,而activityB只是里面调用的一个activity。