我想制作一个媒体播放器,其中有一个seekbar
。 由于按下暂停或停止时,seekbar
应停止进度。我想相应地停止线程。此外,当按下后退时,我想再次取消线程。如何取消线程
Q
如何取消线程
1
A
回答
3
使用Thread.currentThread()。中断()
线程中断
每个线程都有与之相关联的布尔属性,表示其已中断状态。被中断的状态最初是错误的;当一个线程被其他线程通过调用Thread.interrupt()中断时,发生两件事之一。如果该线程正在执行Thread.sleep(),Thread.join()或Object.wait()等低级可中断阻塞方法,则它将取消阻塞并引发InterruptedException。否则,interrupt()仅仅设置线程的中断状态。在中断线程中运行的代码稍后可以轮询中断状态,以查看是否已请求停止正在执行的操作;可以使用Thread.isInterrupted()读取被中断的状态,并且可以通过名为Thread.interrupted()的单一操作读取和清除。
中断是一种合作机制。当一个线程中断另一个线程时,被中断的线程不一定会立即停止正在执行的任务。相反,中断是一种礼貌地要求另一线程在其方便时停止正在做的事情的方式。一些方法,如Thread.sleep(),认真对待这个请求,但方法不需要注意中断。不阻塞但仍需要很长时间才能执行的方法可以通过轮询中断状态来尊重中断请求,如果中断则返回提前返回。您可以自由地忽略中断请求,但这样做可能会影响响应能力。
中断合作性质的好处之一是它为安全构建可取消活动提供了更大的灵活性。我们很少想要一个活动立即停止;如果活动在更新中取消,则程序数据结构可能会处于不一致的状态。中断允许可取消活动清理正在进行的任何工作,恢复不变量,通知其他活动取消,然后终止。
0
boolean running = true;
final Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
while(running){
//Your code
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//handler code
}
});
t.start();
定义一个“跑”布尔将管理当线程会执行其代码,当你设置运行虚假搜索条将停止,而无需中断或杀死线程。
相关问题
- 1. 如何取消暂停线程的Qt
- 2. Boost线程取消
- 3. Android取消线程
- 4. 如何在取消订阅上取消异步Observable线程
- 5. 并行线程:取消阻塞线程
- 6. (iphone)取消performSelectorInBackground的线程
- 7. Objective-C - 取消线程?
- 8. 正在取消线程
- 9. 可以取消的线程
- 10. 如何取消从另一个线程发出http请求的线程
- 11. 从线程URL加载图像,以及如何取消dealloc线程
- 12. 如何取消高线WPF DataGrid行?
- 13. 带图像的懒惰列表。如何取消线程?
- 14. pthreads加入 - 如何取消另一个线程的加入
- 15. 如何在线程池中响应已取消的futuretask?
- 16. 如何从ruby线程获取错误消息
- 17. 如何实现可取消的工作线程
- 18. 如何停止,暂停,取消java中的线程
- 19. 如何取消工作线程在applicationDidEnterBackground iOS上
- 20. 如何取消阻塞ServerSocket.accept()上阻塞的线程?
- 21. 如何从子线程或其他线程获取父线程?
- 22. 如何创建消息框线程?
- 23. 如何将消息传递给线程
- 24. 如何获得知道线程ID的消息线程URL?
- 25. C++实现跨线程池取消
- 26. 取消GCD块在线程中工作
- 27. Python中可取消线程。定时器
- 28. 可取消加载后台线程
- 29. 暂停和取消暂停线程
- 30. facebook,Myspace,Twitter API获取消息线程
试过Thread.Suspend()? – NLV 2011-03-19 10:53:43
可能重复[如何优雅停止java线程?](http://stackoverflow.com/questions/3194545/how-to-stop-a-java-thread-gracefully) – Thilo 2011-03-19 10:53:51
@NLV Thread.suspend已弃用,因为它不会释放线程持有的任何锁 – Maaalte 2011-03-19 11:37:41