建立在我Android
app
我開始Runnable
(稱爲remoteUDPRunnable
),確立了一個新的Thread
像這樣與其他設備的UDP Connection
:的Android停止了Runnable在新線程
new Thread(remoteUDPRunnable).start();
我一些情況,我想停止Thread
(並取消UDP connection
),但我不知道怎麼I'have
試圖保持Thread
例如在variable
並呼籲myThread.interrupt()
,但它不工作。
final Handler remoteUDPRunnableHandler = new Handler();
remoteUDPRunnableHandler.post(remoteUDPRunnable);
所以我可以取消它這樣做:
我已經使用Handler
這樣也試過
remoteUDPRunnableHandler.removeCallbacks(remoteUDPRunnable);
這工作,但是當我打電話post(remoteUDPRunnable)
方法,我收到了NetworkOnMainThreadException
。我也嘗試將Runnable
中的代碼放入AsyncTask
之內,但它也不起作用。
任何想法?我對此很新,對此我有點困惑。 謝謝
中斷只是在線程中設置一個標誌。你需要在你的Runnable中檢查該標誌(Thread.interrupted()),並確保你的線程到達並終止你自己。 –
Re,「我試圖調用'myThread.interrupt()',但它不起作用。」:不工作怎麼辦?這聽起來像是一個很好的StackOverflow問題。你應該編寫一個小型的,自包含的示例程序,讓其他人可以運行,顯示t.interrupt()沒有做你期望的事情;然後你應該在這裏發佈,並問我們爲什麼它沒有做你期望的事情。 –
P.S .:在這個問題中沒有理由使用「Runnable」這個詞。 'Runnable'只是意味着它有一個名爲'void run()'的方法。它沒有告訴我們有關你如何使用該對象的任何信息。 –