android - 在自动完成中使用 AsyncTask 的最佳实践?

标签 android multithreading android-asynctask

我正在使用异步任务从服务器填充自动完成建议。

问题: 当用户多次键入和删除 edittext 中的文本时。 假设他输入了很多次:cofee > cof > coffee > coffee late ....等等。 对于在 3 个关键字(阈值)之后更改的每个文本,我正在初始化一个异步任务并询问结果。 所以在当前情况下,我有很多线程在后台运行。所以我的一些最新的异步线程正在等待机会。 整个这让我的应用程序非常慢。

我能做些什么来解决这个问题?

最佳答案

如果可以在开始时从服务器加载全部数据...那么您可以避免重复调用 asynctask 并从服务器获取数据。这将提高您应用程序的性能。如果 Listview 中显示的数据是字符串,下面的链接显示了如何过滤它:

http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/

如果在 ListView 适配器中使用自定义对象,请尝试:

Filtering ListView with custom (object) adapter

希望这对您有所帮助。

关于android - 在自动完成中使用 AsyncTask 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210635/

相关文章:

android - 无法使用处理程序每​​秒更新 TextView

java - 数组阻塞队列 : why signal conditions in InterruptedException blocks?

java - 连接到google fit android API不在 Activity 类中

python - 当进程收到 SIGSTOP 和 SIGCONT 时如何处理超时?

android - 如何在android中加载数据时避免黑屏

android - 我可以确定对 Activity 的引用是否有效吗?

android - 从 google play 游戏服务排行榜屏幕注销

java - 我正在开发一个简单的英语学习教程应用程序,但我在设置编号位置时遇到了问题

Android:从AsyncTask请求位置权限

android - Raspberry 不启动 android 东西