【发布时间】:2013-11-26 07:10:52
【问题描述】:
我正在使用异步任务来填充来自服务器的自动完成建议。
问题: 当用户多次键入并删除edittext中的文本时。 假设他输入了很多次:咖啡>咖啡>咖啡>咖啡迟到....等等。 对于在 3 个关键字(阈值)之后更改的每个文本,我正在初始化一个异步任务并询问结果。 所以在当前情况下,我有很多线程在后台运行。所以我最新的一些异步线程正在等待机会。 整个这使我的应用程序非常慢。
我能做些什么来解决这个问题?
【问题讨论】:
-
您应该在用户每次输入三秒后启动 1 或 2 秒的计时器。然后启动异步任务
-
但这将停止最新的线程甚至执行
-
我试图取消当前任务并再次执行它给了我:java.lang.IllegalStateException: 无法执行任务:任务已经在运行。
标签: android multithreading android-asynctask