1

UI の更新は、asynctask の onPostExecute() 内で行われます。そのため、膨大なデータを UI に更新する必要がある場合、UI がわずかにハングするか、私の場合は非同期タスクによって更新されないようです。

この問題を再現するには、多数の非同期タスクを使用して、タブ付きアクティビティの多数のフラグメントにデータを追加します。各タブに、データが更新されるリストを含む同じフラグメントを持たせます。

非同期タスクの実行中にタブを切り替えようとすると、その効果が顕著になります。(私のwhatsアプリにもこの問題がありますが、一度に1000件以上のメッセージが殺到しています)

大規模なデータを使用して UI を更新する際のベスト プラクティスは何ですか?

4

2 に答える 2

1

ベスト プラクティスは、「やらない」ことです。

画面に収まるデータ数は?画像の場合: 数 MB、テキストの場合: 数 kB。

ユーザーが見ていないものは更新しないでください。必要なすべてのデータをモデルに保持し、表示されている場合にのみ更新します。ListView と Adapter は、この良い例です。

于 2013-04-07T09:42:24.163 に答える
1

データベースを使用してデータを保持します。一度に6または10が画面に収まると言うだけであれば、データベースにデータを入力するのに問題はonBackground()なく、UIに1000のメッセージを入力しても意味がありません

于 2013-04-07T09:43:56.577 に答える