1

UI 更新发生在 asynctask 的 onPostExecute() 内。因此,当必须将大量数据更新到 UI 上时,似乎会出现轻微的 UI 挂起,或者在我的情况下是由没有异步任务更新的。

要重现此问题,请使用大量异步任务将数据添加到选项卡式活动中的多个片段。让每个选项卡具有相同的片段,其中包含更新数据的列表。

当异步任务正在执行并且您尝试切换选项卡时,效果很明显。(我的whats应用程序也有这个问题,而我一次就收到了1000多条消息)

处理大数据更新ui时的最佳实践是什么?

4

2 回答 2

1

最佳做法是“不要”。

屏幕能放多少数据?如果是图像:几 MB,如果是文本:几 kB。

不要更新用户没有看到的任何内容。将您需要的所有数据保留在模型中,并仅在可见时更新。ListView 和 Adapter 就是一个很好的例子。

于 2013-04-07T09:42:24.163 回答
1

使用数据库来保存您的数据。填充数据库没有问题onBackground(),如果只说 6 或 10 条消息一次适合屏幕,那么用 1000 条消息填充 UI 也没有任何意义

于 2013-04-07T09:43:56.577 回答