下面的代码时设置按下HOME键回到主页面然后回来后页面保持不变的代码
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_Home) {
moveTaskToBack(false);
return true;
}
return super.onKeyDown(keyCode, event);
}
但是在测试过程中发现:只这样写的话播放的视频文件在回到前台的时候会重新播放解决方法如下:
@Override
protected void onPause() {
super.onPause();
pos = videoview.getCurrentPosition()+600;
Log.i("2222", "onResume: "+pos);
}
1.提前声明好一个int型的变量pos,在onPause中调用VideoView对象的getCurrentPosition方法(返回值是int)来获取当前视频播放的位置(因为进入后台会调用onPause方法)。这里pos多加600的原因是为了解决可能存在回到app的时候音频对不准,可能是退出前几秒的位置的问题(应该是因为返回值是int所以导致得到的值不精确)
2.在onResume中调用seekTo方法来回到原先退出的位置
@Override
protected void onResume() {
super.onResume();
videoview.seekTo(pos);
}