我有一个应用程序,其中有一个AutoCompleteTextView。在每个文本更改事件中,应用程序都会转到Web以从Internet上检索一些内容并填充TextView的下拉列表。我使用AsyncTask来完成网页内容的读取。但是,如果在接收和填充内容之前键入新文本,应用程序将挂起直到获取旧内容。有没有办法解决这个问题?Android:AsyncTask不按预期方式工作
我的AsyncTask是如下,
private class GetSuggestions extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
System.out.println("Suggestions Called()");
doSearch(params[0]); // reads the web and populates the suggestions ArrayList
return null;
}
@Override
protected void onPostExecute(String result) {
System.out.println("Adapter Called() " + suggestions.size());
suggestionAdapter = new ArrayAdapter<String>(
getApplicationContext(), R.layout.list, suggestions);
searchText.setAdapter(suggestionAdapter);
}
}
THX! 拉胡尔。
在你的情况下,这取决于你想要完成什么。我会说,如果下拉列表中的任何内容都与'TextView'是直接相关的,并且它始终是一个'TextView',那么停止该进程并使用新文件重新启动它。如果没有,那么你总是可以做一个等待列表并让'onPostExecute'检查这个列表来查看是否有下一个。 – Andy 2012-07-31 05:30:10