2012-12-08 3 views
2

2 개의 다른 TV 채널을 표시하는 두 개의 탭이 있지만 탭 사이를 전환하면 해당 활동 (의도)이 계속 실행되고 혼합됩니다. 새 채널이 시작되기 전에 한 채널의 재생이 중지되는지 어떻게 확인할 수 있습니까?안드로이드에서 다른 탭으로 전환 한 후에도 탭의 의도가 멈추지 않습니다.

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); 

그리고는 Intent.FLAG_ACTIVITY_CLEAR_TOP 당신을 위해 새로운 뷰를 작성

tabHost.addTab(tabHost.newTabSpec("ABCD") .setIndicator(tabIndicator(...).setContent(intent));

당신이 탭 전환 할 때마다 말은 ... 이렇게 ...

건배 ...