私はリアルタイム メッセージ アプリケーションに取り組んでいます。着信メッセージの受信を処理する部分を作成しました。メッセージを受信したら、レコードを挿入しSQ-LITE
、コールバックをトリガーして update( ListView
) の UI に通知します。コールバックでは、UI を更新するためにいくつか実装します。カーソルアダプターを使用しています。コールバックで を開始AsyncTask
し、バックグラウンドでデータベースにクエリを実行してチャット履歴を取得します。ではonPostExecute
、バックグラウンドからクエリを実行してアダプタに割り当て、UI を更新するカーソルを使用します。
私の質問は次のとおりです。受信メッセージが多数ある場合、多くAsyncTask
の s がトリガーされ、UI が何度も更新されます。そのため、ListView
まさに「ラグ」が発生し、ユーザーでさえ何もできなくなります。AsyncTask
データベース内のすべてのチャット履歴を取得するため、データベース内のチャット履歴への最新のクエリが正しいことを意味するため、停止/キャンセルして最新のもののみを処理するにはどうすればよいですか。このケースに取り組むために、または他のアイデアを
停止する方法を誰かが提案できますか?AsyncTask