2012-03-07 47 views
1

我有一個複選框。如果我檢查它,然後我需要上傳數據到服務器。我已經在Thread類中編寫了這個上傳邏輯。如果我取消選中複選框,我想取消上傳等。問題是,當嘗試使用相同的線程時,如果在某些情況下,我得到的線程狀態爲TERMINATED (this.getState() == Thread.State.TERMINATED)。在這種情況下我需要做什麼?如果線程狀態是新的,那麼我將調用start()方法。但在這種情況下,我需要做什麼?如何像線程切換一樣工作

+1

這意味着線程完成其工作,因此不能再使用。您需要創建一個新的線程。 – 2012-03-07 11:59:01

+0

如果你需要在你的GUI和另一個線程之間進行交互,可能值得考慮使用SwingWorkers而不是Thread。 SwingWorkers可以像這樣取消:http://stackoverflow.com/questions/6113944/how-cancel-the-execution-of-a-swingworker – assylias 2012-03-07 11:59:30

+0

@assylias,Swing在Android中沒有任何意義。 – 2012-03-07 12:28:11

回答

0

簡單的回答:不要重複使用線程。線程池在大型服務器端系統上有其優勢,但在移動電話上沒有優勢。

終止線程是死的,沒有行動就在你身邊必要再

+0

這並不複雜。我經常在Android中使用線程。我還沒有看到線程最糟糕的事情...... – 2012-03-07 12:30:16