取消AsyncTasks比方說,我有TasksManager具有靜態列表的任務(不知道名單是很好的解決方案),並有靜態方法addTaskToList(MyTask task){tasks.add(task);}, removeTaskFromList(MyTask task){tasks.remove(task);}
在doInBackground(每個任務)調用第一種方法,並在onPostExecute()有第二方法調用「this」。 MyTask有字符串字段「方法」。從收集
我想取消這個列表,task.getMethod()。包含(「URL」)的任務.. 不知道這個代碼是夠用了穩定的工作..看起來像任務的onCancelled()不總是叫,多線程對於我認爲的這種方法可能是危險的。
for (MyTask task : tasks) {
if (task.getMethod().contains("url")) {
task.cancel(true);
break;
}
}
是正常的做法來存儲任務,這樣也可以建議我更優雅?
我知道取消不是直接的事情,我的主要目標不是從任務返回最終結果。一個後臺線程是一個壞主意,有時最多有20個具有不同「方法」字段的相同的asynctasks。 –
所以我沒有看到任何其他的變種,除了存儲和迭代他們,但它是非常混亂,不工作.. –
「一個後臺線程是一個壞主意,」,哈,好的,但你會有一個糟糕的時間。 –