我很难让后退按钮在按下时真正完成我的 Activity 。我正在运行一个非常简单的 videoview,使用 progressdialog 来显示加载对话框和 onpreparedlistener 等简单的东西。无论如何,目前当我按下后退按钮时,它只会取消进度对话框,并留下黑屏,再次按下,进度对话框重新启动!然后当我再次单击后退按钮时,它会显示一个警告对话框,“无法播放视频”。很烦人。感谢您的帮助。
public class VideoActivity extends Activity {
private VideoView mVideoView;
private static ProgressDialog progressdialog;
private String path;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videoview);
progressdialog = ProgressDialog.show(this, "", " Video Loading...", true);
progressdialog.setCancelable(true);
mVideoView = (VideoView) findViewById(R.id.surface_view);
mVideoView.setMediaController(new MediaController(this));
Bundle b = this.getIntent().getExtras();
path = b.getString("path");
mVideoView.setVideoURI(Uri.parse(path));
mVideoView.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
progressdialog.dismiss();
mVideoView.requestFocus();
mVideoView.start();
}
});
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
super.finish();
}
}
最佳答案
您可以简单地写:(无需为 MediaController 创建新类)
mVideoView.setMediaController(new MediaController(this){
public boolean dispatchKeyEvent(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP)
((Activity) getContext()).finish();
return super.dispatchKeyEvent(event);
}
});
关于android - VideoView 中的后退按钮问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7207243/