1

在我的应用程序中,我有一个不断从我的服务器更新的背景模型(某种 DB)。我的问题是我有各种适配器,它们根据这个模型更新他们的数据。每次更新模型时,我都会向活动发送广播,以便它们通知适配器(notifyDataSetChanged)。90% 的时间都可以完美运行,另外 10% - 通常当 UI 线程工作非常努力时(实例的 onActivityResume),当线程有很多 UI 要更新时 - 我收到以下错误:

“线程:主,异常:适配器的内容已更改,但 ListView 没有收到通知。......确保您的适配器的内容不是从后台线程修改的,而只是从 UI 线程修改的。”

我的问题是:使用适配器和维护某种需要从后台线程更新的数据库的最佳做法是什么?

10倍

4

1 回答 1

1
  1. 确保您是notifyDataSetChanged从 UI 线程调用的。
  2. 确保您仅从 UI 线程更新适配器的内容。

您可以使用 UIHandler线程及其消息队列,以便使用来自其他后台线程的 UI 线程将更新发布到数据模型。更多细节在这里Android 处理程序

于 2013-08-26T16:33:16.287 回答