【发布时间】:2014-03-23 06:02:48
【问题描述】:
我的AsyncTask 遇到了一点问题。
我以这种方式运行异步任务:
myTask = new myTask();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
// same as onquerychange
return true;
}
@Override
public boolean onQueryTextChange(String s) {
if (!s.isEmpty()) {
if (myTask.getStatus() == AsyncTask.Status.RUNNING ||
myTask.getStatus() == AsyncTask.Status.PENDING) {
myTask.cancel(true);
}
myTask.execute(context, s);
} else {
myTask.execute(context, "emptyquery");
}
return true;
}
});
输入第二个字母后,我不断收到:java.lang.IllegalStateException:无法执行任务:任务已经执行(一个任务只能执行一次)
所以我认为它不会被取消。有什么建议?谢谢
【问题讨论】:
-
您正在多次调用 asynctask
-
不需要取消线程
-
我看到了,但我正在调用 myTask.cancel!
标签: android android-asynctask illegalstateexception