【发布时间】:2016-01-09 00:41:06
【问题描述】:
我在 SearchView 的 onQueryTextChange 方法中调用 AsyncTask 并在列表中显示结果。搜索有效,但如果用户在搜索视图中快速键入,有时会挂起一秒钟。我想进一步优化这种方法。由于它是一个自动完成搜索,当用户开始输入时,几个 AsyncTask 会排队等待执行。但我只对最后一个搜索请求感兴趣。
目前,我正在做这样的事情
if (myAsyncTask != null)
myAsyncTask.cancel(true);
myAsyncTask = new MyAsyncTask(context,URL);
有没有更好的方法来做到这一点?如果可能的话,我想做这样的事情
myAsyncTask.executeOnExecutor(new OptimizedExectionerService);
OptimizedExectionerService 类应该取消池中所有挂起和正在运行的任务,并且只处理发出的最后一个请求。
【问题讨论】:
标签: android performance android-asynctask