0

次のタスクを実行する必要があるシナリオがあります。1。リストビューにデータを入力します。2.非常に時間のかかる作業であるデータベース操作を実行します。3.データベースの処理/操作時間は予測できない場合があります。

ホルダーパターンを使用してlistViewを使用しましたが、以前よりも高速に動作していますが、それでもかなりの時間がかかります。パフォーマンスを向上させるために他に何ができるか。アイデアはありますが、実装するのが良いかどうか不安です。アイデアは、データベース操作をAsyncTaskに配置し、そこでのみリストビューを更新することです。しかし、そうすることを恐れているのは、私のリストビューがデータベースの結果に完全に依存しているためです。したがって、DB操作が完了した場合にのみリストビューに何かを表示できます

非同期タスクを使用することが良いアプローチになることを提案し、他のアイデアを提案してください。

4

1 に答える 1

0

ホルダーアプローチを使用するのは良いことです。常にアダプターでそれを使用してください。変換ビューも再利用していることを確認してください。

を使用するのAsyncTaskが最良のオプションです。ただし、操作全体が完了するのを待つ必要はありません。仕組みを読んでくださいAsyncTaskpublishProgress()のメソッドを使用してdoInBackground()AsyncTaskデータのバッチをリストに追加します。

たとえば、100行を処理する必要がある場合は、10を処理してから、publishProgress()これらの10行でリストを更新するaを実行します。次のバッチを処理するときに、リストをpublishProgress()再度更新します。

于 2012-12-11T15:36:29.863 に答える