我有一个搜索任务,当第二次单击该按钮时,它会取消当前正在运行的任务并重新创建它。
if (_searchAsyncTask != null) {
// cancel if already running
_searchAsyncTask.cancel(true);
}
_searchAsyncTask = new SearchAsyncTask(this);
_searchAsyncTask.execute(data);
这在上述代码的最后一行失败,就好像我再次调用了原始异步任务一样。
java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)
我错过了什么吗?我需要等到原始实例 isCancelled() 吗?