我正在處理實時消息應用程序。我寫了處理接收傳入消息的部分。當我收到消息時,我會在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