使用onCreateDialog
中的以下代码,打开显示视频的Dialog
。
dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.video_dialog);
final VideoView videoView = (VideoView) dialog.findViewById(R.id.videoView);
videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.test2));
videoView.setZOrderOnTop(true);
videoView.start();
我第一次打电话时效果很好。但如果我通过按后退按钮取消Dialog
并再次打开Dialog
,则视频无法启动。对话框打开但我只能看到Dialog
的黑色背景。
我尝试设置OnCancelListener
,以便我可以确保视频已停止,并且通过执行以下操作不会再次使用该对话框
dialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
videoView.stopPlayback();
//videoView.suspend();
dialog = null;
}
stopPlayback()
和suspend()
都没有做到这一点。
任何人都可以说出可能导致此问题的原因吗?
答案 0 :(得分:1)
您必须在onPrepareDialog中移动代码。第一次在对话框中运行时会创建onCreateDialog,但是第二次创建对话框并且只调用onPrepareDialog。关于对话框的info多一点