我真的無法弄清楚 - 我聽說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