我真的無法弄清楚 - 我聽說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. 多線程處理和中途停止
- 3. Android中的處理程序和線程
- 4. 線程處理程序停止處理方向更改
- 5. 如何處理 - 應用程序已停止在Android中工作
- 6. 停止Android處理程序循環
- 7. 處理程序不停止 - Android
- 8. 如何停止處理程序執行
- 9. 如何停止處理程序?
- 10. 如何在android中停止此線程?
- 11. 如何在Android中停止線程?
- 12. 如何在Android多線程程序中停止looper.loop()?
- 13. Android:停止線程
- 14. 在android中編程線程和處理程序?
- 15. 如何停止Android中的線程?
- 16. 如何停止android中的ASyncTask線程
- 17. 如何停止通知多數民衆贊成在處理程序線程
- 18. Touchevent中的android線程/處理程序
- 19. 如何停止按鈕處理程序 - Android
- 20. Android - 處理程序 - 如何停止意圖?
- 21. 如何停止進度條,當我們停止處理程序android
- 22. 在android中,如何在活動退出時停止包含處理程序的子線程?
- 23. 如何停止在批處理程序中啓動的VBScript?
- 24. 如何停止多處理。進程
- 25. Android Studio線程處理程序
- 26. Android線程處理程序問題
- 27. 要停止Java處理程序
- 28. 在Android應用程序中停止線程
- 29. 如何停止線程當Tomcat停止
- 30. Android線程突然停止
看看這個:http://stackoverflow.com/questions/671049/how-do-you-kill-一個線程中的Java。 – Malcolm 2011-05-07 18:35:05