特定の条件で非同期タスクをキャンセルしたい。私は次のことをやっています:
MyService.java
....
if(condition){
asyncTask.cancel(true); // its return the true as well
}
...
MyAsynTask.java
...
protected Object doInBackground(Object... x) {
while (/* condition */) {
// work...
if (isCancelled()){ // Here task goes in to wait state
break;
}
else{
//continue to download file
}
}
return null;
}
...
DDMS を使用すると、タスクが待機状態になることがわかりました。この問題を解決するための提案は高く評価されます。
ありがとう、ユヴィ