2011-02-03 3 views
0

非常に一般的な状況です:アクティビティは、CursorAdapter(フィードからのアイテム)からのデータを含むリストビューを表示し、ContentProviderによってURIによるデータの変更についてカーソルに通知されます。URIデータの変更後にカーソルを頻繁に通知しないでください。

非常に多くのアイテムが挿入された(数千のアイテム)場合、問題が発生し、通知後にUIが応答しなくなります。だから私はもっと粗い通知を設定する必要があります。

私のアイデアは、次のとおりです。

  1. は、例えば、自分で再クエリを通知しないでください。 1秒ごと
  2. ContentProviderに通知時間を保存し、1秒より古いかどうかを通知します。

この状況の一般的な解決策はありますか?

ありがとうございました。

答えて

0

UIの応答性を維持するために、AsyncTaskでアダプタの通知と更新を処理する必要があります。 bindViewとnewViewを正しく組み合わせることで、UIのレスポンスが向上するはずです。もう少し詳しくは、Moving CursorAdapter cursor creation to background threadAndroid CursorAdapters, ListViews and background threadsを参照してください。

+0

カーソルは、AsyncQueryHandlerを使用してバックグラウンドで入力され、ビューは正しくリサイクルされます。 UIがデータベースが変更されていないときに完全に応答しています – kzotin

+0

その場合、リストビューを作成する際に使用するコードを投稿し、更新を処理する場合に役立ちます。UIスレッドをブロックしているようですあなたの質問の情報に基づいて言うことは不可能です。 – RivieraKid

関連する問題