我有兩個webservices,這些webservices是由線程在後臺運行。我經常檢查我的網絡連接,如果網絡失敗,我會顯示一個帶有「RESYNC」按鈕的對話框。如何停止和啓動在後臺運行的android中的線程
我的意圖是當我點擊RESYNC按鈕時,沒有完成的線程必須重新開始。
我用thread.interupt()停止線程和thread.start重新開始。
這不能正常工作,它顯示錯誤就像你的線程已經運行。
任何人都可以幫助我如何停止線程並重新啓動它。
謝謝。
我有兩個webservices,這些webservices是由線程在後臺運行。我經常檢查我的網絡連接,如果網絡失敗,我會顯示一個帶有「RESYNC」按鈕的對話框。如何停止和啓動在後臺運行的android中的線程
我的意圖是當我點擊RESYNC按鈕時,沒有完成的線程必須重新開始。
我用thread.interupt()停止線程和thread.start重新開始。
這不能正常工作,它顯示錯誤就像你的線程已經運行。
任何人都可以幫助我如何停止線程並重新啓動它。
謝謝。
線程無法重新啓動,您可以通過stop()
停止它;
要重新開始,您必須創建線程的新實例,然後調用start。
你的run()方法有一段時間(條件)。在你的while循環中,你想讓你的線程在運行時做的事情。通過線程上的setter方法將條件變量的值更改爲false。 java中的stop()方法已被棄用。
請勿使用thread.stop()
來終止線程。
可以使用揮發性標誌:
private volatile boolean running = true;
public void stop() {
running = false;
}
public void run() {
while(running) {
// your code
}
}
有關於這個話題這麼多問題。請在您提出新問題之前進行調查。 –