我真的无法弄清楚 - 我听说thread.stop()
不是好东西。它也不适合我。如何让线程/处理程序停止运行?如何在Android中停止线程和处理程序
回答
线程应以“礼貌”的方式终止。你应该建立一些机制让你的线程停下来。你可以是你的线程的每个循环中检查挥发性布尔参数(假设你有循环在那里),像这样:
while (!threadStop) {
// Do stuff
}
然后你就可以从另一个线程设置布尔值设置为false(确保你可以处理所有的同步问题),你的线程将停止在它的下一次迭代中。
停止处理程序的正确方法是: handler.getLooper().quit();
我通常通过发送退出消息到处理器终止本身实现这一点。
停止通用线程的正确方法是: thread.interrupt();
正被停止需要处理中断线程:
if(isInterrupted())
return;
这可以在循环中放,如果你想:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
try {
while(!isInterrupted() && (line = br.readLine()) != null) {
// Do stuff with the line
}
}
catch(IOException e) {
// Handle IOException
}
catch(InterruptedException e) {
// Someone called interrupt on the thread
return;
}
不应该使用Thread.interrupt()。见上面的评论。 – Moritz 2011-12-29 11:34:24
,你可以使用它像这样..
Thread mythread=new Thread();
if(!mythread){
Thread dummy=mythread;
mythread=null;
dummy.interrupt();
}
或 可以使用
mythread.setDeamon(true);
这是什么语言? 'if(!mythread)'在Java中不起作用。 – 2017-01-16 15:51:04
确定的答案,停止线程已经完成。要停止处理程序,你必须使用此方法如下:
removeCallbacksAndMessages from Handler class这样
myHandler.removeCallbacksAndMessages(null);
这应该是选择的答案,只是一些信息。在使用上述内容之前检查你的处理程序是否为空。 – User3 2014-12-02 06:21:56
- 1. 如何在Android中停止线程处理程序?
- 2. android:停止处理程序
- 3. 多线程处理和中途停止
- 4. 如何停止键处理程序中的线程
- 5. Android中的处理程序和线程
- 6. 如何在主线程停止/暂停线程/ Activity在android中暂停/停止?
- 7. 线程处理程序停止处理方向更改
- 8. 如何处理 - 应用程序已停止在Android中工作
- 9. 停止Android处理程序循环
- 10. 处理程序不停止 - Android
- 11. 如何停止处理程序执行
- 12. 如何停止处理程序?
- 13. 停止处理程序()。postDelay
- 14. 如何在android中停止此线程?
- 15. 如何在Android中停止线程?
- 16. 如何在android中停止asynctask线程?
- 17. Android线程和处理程序NullPointerException
- 18. 如何在Android多线程程序中停止looper.loop()?
- 19. 在android中编程线程和处理程序?
- 20. Android:停止线程
- 21. 如何停止Android中的线程?
- 22. 如何停止android中的ASyncTask线程
- 23. 如何停止通知多数民众赞成在处理程序线程
- 24. Touchevent中的android线程/处理程序
- 25. ExecuterService停止处理两个线程中的一个线程
- 26. Android - 处理程序 - 如何停止意图?
- 27. 如何停止按钮处理程序 - Android
- 28. 如何在线程中处理线程?
- 29. 在Android上停止线程
- 30. 如何停止进度条,当我们停止处理程序android
看看这个:http://stackoverflow.com/questions/671049/how-do-you-kill-一个线程中的Java。 – Malcolm 2011-05-07 18:35:05