我有两个标签显示两个不同的电视频道,但当我在标签之间切换时,他们的活动(意图)继续运行,然后他们混淆了。如何确保一个频道在新频道开始播放前停止播放?
以下是Activity类的代码:
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.videoview);
extras = getIntent().getExtras();
progressDialog = ProgressDialog.show(TvMenuOne.this, "TV1",
"Please Wait..", true, true);
PlayVideo();
}
private void PlayVideo() {
try {
videoView = (VideoView) findViewById(R.id.surface_view);
if(extras.getString("id").equals("one")){
videoView.setVideoPath(pathL);
}
if(extras.getString("id").equals("two")){
videoView.setVideoPath(pathM);
}
videoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);
videoView.setMediaController(new MediaController(TvMenuOne.this));
videoView.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
progressDialog.dismiss();
videoView.start();
}
});
} catch (Exception e) {
progressDialog.dismiss();
System.out.println("Video Play Error :" + e.toString());
finish();
}
}
答案 0 :(得分:0)
嘿,我想我得到了解决方案::
在标签之间切换时执行此操作。
Intent intent= new Intent().setClass(this,SecondClass.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
然后这样做......
tabHost.addTab(tabHost.newTabSpec("ABCD") .setIndicator(tabIndicator(...).setContent(intent));
无论何时您从标签切换,然后 Intent.FLAG_ACTIVITY_CLEAR_TOP 为您创建新视图...
干杯...
答案 1 :(得分:0)
我通过重写onPause方法解决了这个问题,看起来活动在显示新意图之前进入了暂停模式。
@Override
public void onPause() {
super.onPause();
videoView.stopPlayback();
videoView.setVisibility(2);
}