我正在开发实时消息应用程序。我已经编写了处理接收传入消息的部分。当我收到一条消息时,我将插入记录SQ-LITE
并触发回调以通知 UI 的 update( ListView
)。在回调中,我实现了一些更新 UI 的东西。我正在使用光标适配器。在回调中,我将启动一个AsyncTask
,在后台,我将查询数据库以获取聊天记录。在 中onPostExecute
,我将使用从后台查询并分配给适配器并更新 UI 的游标。
所以我的问题是:如果传入的消息很多,会触发很多AsyncTask
s,更新UI很多次。所以它会ListView
非常“滞后”,甚至用户也无能为力。如何停止/取消AsyncTask
并仅处理最新的,因为我将在数据库中获取所有聊天记录,这意味着对数据库中聊天记录的最新查询应该是正确的。
任何人都可以建议如何阻止AsyncTask
或任何其他想法来处理这个案例吗?