2012-12-08 53 views
2

我有兩個選項卡可以顯示兩個不同的電視頻道,但是當我在選項卡之間切換時,它們的活動(意圖)繼續運行,並且混在一起。如何確保一個頻道在新頻道開始前停止播放?切換到Android中的另一個選項卡後,選項卡的含義並不會停止

下面是活動類的代碼:

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

你通過重寫'setOnCompletionListener'方法試過嗎? –

+0

@ρяσѕρєяK不,實際上我不知道如何在我的情況下使用該方法.. –

回答

0

我已經通過覆蓋onPause方法解決了它,看起來像活動進入暫停模式之前顯示新的意圖。

@Override 
public void onPause() { 
    super.onPause(); 
    videoView.stopPlayback(); 
    videoView.setVisibility(2); 
} 
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爲您創建新的看法...

乾杯...

相關問題