2016-04-01 21 views
2

对不起,我可怜的英语:)。 在我的APP中,有一个VideoView可以播放视频(m3u8)。 在此VideoView活动中,我使用ThreadExecutorService(newCachedThreadPool)来获取播放网址和其他信息。 时,我想回到过去的活动,我做这样的事情:我怎么能释放活动完成线程?

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    if (videoView != null) { 
     videoView.stopPlayback(); 
     videoView = null; 
    } 
    if (executor != null) { 
     executor.shutdownNow(); 
     executor = null; 
    } 
} 

这里是Runnable的

private Runnable changeSeekBar = new Runnable() { 
@Override 
public void run() { 
    // TODO Auto-generated method stub 
    try { 
     while (seekBarAutoFlag) { 
      if (null != videoPlay.this.videoView&& videoPlay.this.videoView.isPlaying()) { 
       video_seekBar.setProgress((int) videoView.getCurrentPosition()); 
      } 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}; 

和excutor这样的:

executor.execute(changeSeekBar); 

这里是错误信息 enter image description here

+0

停止线程调用这个'新主题(可运行).interrupt();' – Bharatesh

+0

由于不知道如何使用Java的一般-threads。 您有涉及寄存器的错误信息。这意味着您的硬件或其他软件或共享库存在问题。这是不可能的,因为它对中国 – iantonuk

+0

谢谢〜,标题(发送给MIUI)意味着发送一条错误消息给MIUI(一家公司),我试试这个,这是工作。但有一些错误,所以我尝试使用WearHandler.Thank很多! :) – buruoyanyang

回答