我正在做一個簡單的與Android的異步操作,但由於我想執行幾次操作,我沒有使用AsyncTask,而是使用Thread/Runnable機制和Handler來處理消息和工作人員。但是當我需要執行第二個操作時,如果它仍然處於活動狀態,我需要取消之前的操作。Android取消線程
我有這樣的事情:
private void exec() {
new Thread(new Runnable() {
public void run() {
mBind.exec(3);
}
}).start();
}
然後在EXEC(INT一)我有一個像互爲作用:
for(int i = 0; i<=res.lenght; i++) {
updateGui();
}
但在一個點上的exec()方法被調用第二時間,gui也會更新以前的結果(我只需要新的(第二個)請求的結果)。
我知道有一種方法可以用FutureTask來做到這一點,並使用cancel()或Thread的'throw ThreadDead'異常來玩,但我只是好奇我是否可以像第一次那樣開始。
謝謝!
我想你可以通過創建一個AsyncTask的新實例多次執行一個AsyncTask。如果你有myTask = new MyTask(); myTask.execute(),您可以使用myTaskAgain = new MyTask再次運行任務; myTaskAgain.execute()。 P.S .:我不確定他們是否可以同時運行,還沒有嘗試過。我只嘗試了兩個不同的AsyncTasks同時運行。 – Zarah 2011-01-30 16:02:14
謝謝。雖然這不是我的疑問,但我必須說我嘗試過使用AsyncTask,它會拋出異常或類似的東西..即使如此,我不知道如何取消之前觸發迭代的操作。 – user584513 2011-01-30 16:16:07