2013-04-07 44 views
1

UI更新发生在asynctask的onPostExecute()内部。因此,当大量数据必须更新到用户界面时,似乎会出现轻微的用户界面挂起,或者在我的情况下通过不同的异步任务进行更新。在Android中使用高音量数据进行Ui更新后的异步任务完成的最佳实践

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

当异步任务正在执行并且您尝试切换选项卡时,效果很明显。 (我也有这个问题,在我的Whats应用程序中,同时充斥着超过1000条消息一次去)

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

+0

如果您从服务器获取数据,请不要等待所有数据到达,积累。只要您收到它就更新它。 – 2013-04-07 09:42:44

回答

1

最好的做法是“只是不要”。

有多少数据可以适应屏幕?如果它是一个图像:几MB,如果是文本:几kB。

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

1

使用数据库保留您的数据。在onBackground()中填充数据库没有任何问题,如果只说6或10将立即适合屏幕,则不会填充具有1000条消息的UI。