Java 如何使用activity finish?;释放线程;
对不起,我的英语很差:)。 在我的应用程序中,有一个Java 如何使用activity finish?;释放线程;,java,android,multithreading,executorservice,Java,Android,Multithreading,Executorservice,对不起,我的英语很差:)。 在我的应用程序中,有一个视频视图来播放视频(m3u8)。 在这个VideoView活动中,我使用Thread和ExecutorService(newCachedThreadPool)获取播放URL和其他信息。 当我想回到上一个活动时,我会这样做: @Override public void onDestroy() { super.onDestroy(); if (videoView != null) { videoView.stopPl
视频视图
来播放视频(m3u8)。
在这个VideoView
活动中,我使用Thread
和ExecutorService(newCachedThreadPool)
获取播放URL和其他信息。
当我想回到上一个活动时,我会这样做:
@Override
public void onDestroy() {
super.onDestroy();
if (videoView != null) {
videoView.stopPlayback();
videoView = null;
}
if (executor != null) {
executor.shutdownNow();
executor = null;
}
}
executor.execute(changeSeekBar);
这里是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();
}
}
};
执行者是这样的:
@Override
public void onDestroy() {
super.onDestroy();
if (videoView != null) {
videoView.stopPlayback();
videoView = null;
}
if (executor != null) {
executor.shutdownNow();
executor = null;
}
}
executor.execute(changeSeekBar);
这是错误信息
最后,我使用EventBus替换线程+处理程序,这是可行的 以下是EventBus github:
非常感谢您的帮助:)要停止线程,请调用此
新线程(runnable).interrupt()代码>这与如何使用java线程无关。您有涉及寄存器的错误信息。这意味着您的硬件或其他软件或共享库存在问题。这是不可能调查的,因为它的标题是chinesethanks~(发送给MIUI)意味着向MIUI(一家公司)发送错误消息,我尝试了这个,它是有效的。但是有一些错误,所以我尝试使用WearHandler。非常感谢!)