0
我创建了AsyncTask
来每次用户在EditText
中输入内容时查询REST API。这导致在用户继续输入时发送一部分请求发送到REST API。有什么办法可以控制发送的请求吗? AsyncTask
是最好的解决方案吗?我的其他选择是什么?每次使用AsyncTask查询API EditText发生变化
代码如下:
private AsyncTask<Object, Object, Response> searchTask;
@Override
public void afterTextChanged(Editable s) {
this.search(s.getText().toString());
}
public void search(final String q) {
if (searchTask != null) {
searchTask.cancel(true);
}
searchTask = new AsyncTask<Object, Object, Response>() {
@Override
protected void onPreExecute() {
}
@Override
protected List<Transaction> doInBackground(Object... params) {
return retrofitService.findPerson(token, q);
}
@Override
protected void onPostExecute(Response response) {
// do stuff here with the response
}
};
searchTask.execute();
}
你试过“IME_ACTION_DONE”上的搜索任务吗? – deniz 2014-09-11 06:27:06
以便快速修复,如果您尝试使自动完成,您可以使您的API调用输入的第一个字母和其他输入更改,您可以在您的API调用的结果列表中搜索。 – savepopulation 2014-09-11 06:30:58