2012-11-15 51 views
0

我有兩個webservices,這些webservices是由線程在後臺運行。我經常檢查我的網絡連接,如果網絡失敗,我會顯示一個帶有「RESYNC」按鈕的對話框。如何停止和啓動在後臺運行的android中的線程

我的意圖是當我點擊RESYNC按鈕時,沒有完成的線程必須重新開始。

我用thread.interupt()停止線程和thread.start重新開始。

這不能正常工作,它顯示錯誤就像你的線程已經運行。

任何人都可以幫助我如何停止線程並重新啓動它。

謝謝。

+0

有關於這個話題這麼多問題。請在您提出新問題之前進行調查。 –

回答

1

線程無法重新啓動,您可以通過stop()停止它;

要重新開始,您必須創建線程的新實例,然後調用start。

0

你的run()方法有一段時間(條件)。在你的while循環中,你想讓你的線程在運行時做的事情。通過線程上的setter方法將條件變量的值更改爲false。 java中的stop()方法已被棄用。

2

請勿使用thread.stop()來終止線程。

可以使用揮發性標誌:

private volatile boolean running = true; 

public void stop() { 
    running = false; 
} 

public void run() { 
    while(running) { 
    // your code 
    } 
}