我正在处理实时消息应用程序。我写了处理接收传入消息的部分。当我收到消息时,我会在SQ-LITE
中插入记录并触发回调以注意更新的UI(ListView
)。在回调中,我实现了一些更新UI的事情。我正在使用游标适配器。在回调中,我将在后台启动一个AsyncTask
,我将查询数据库以获取聊天记录。在onPostExecute
中,我将使用游标从后台查询并分配给适配器并更新UI。Android如何在AsyncTask运行过程中停止/取消AsyncTask?
所以我的问题是: 如果有很多传入消息,它会触发许多AsyncTask
s和更新UI多次。所以它会使ListView
非常“滞后”,甚至用户也无能为力。我如何停止/取消AsyncTask
,并且只处理最新的一个,因为我将获取数据库中的所有聊天记录,这意味着对数据库中聊天历史的最新查询应该是正确的。
任何人都可以建议如何停止AsyncTask
或任何其他想法在这种情况下工作?
它看起来像你需要一个'AsyncTask'的队列来管理它们的数量......但是在停止'AsyncTask'时存在一个小问题。看到这篇文章的一些参考http://stackoverflow.com/questions/12971882/cancel-all-asynctask。 – 2013-03-03 11:41:02