我有一个 IntentService,它可以访问 Web 服务并从 Web 服务中获取数据。然后它将数据转换为对象列表。它将 List 存储在 DataStore 单例中,然后触发 Intent 返回主应用程序,告诉它数据已准备好。
稍后,主应用程序将从 DataStore 访问列表,并显示它。它还可以根据用户可以选择的某些类别过滤此列表。选择其中之一时,我的自定义listAdapter将浏览其拥有的列表的副本,并选择与用户选择的标签匹配的对象。我相信我是在 DataStore 提供的列表副本中这样做的,但我不再那么确定了。
这是我的问题:我选择了这些过滤器之一。然后我去刷新。这会导致 IntentService 调用 DataStore.getList(),这是触发 ConcurrentModificationException 的地方。
从意图服务实际返回列表的正确方法是什么?