我正在使用异步任务从服务器填充自动完成建议。
问题: 当用户多次键入和删除 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/