【发布时间】:2012-03-02 12:50:20
【问题描述】:
我有一个 ArrayList,其中包含用于显示的数据。内容异步更改。 我想在两个活动中显示数据,两者都使用 ArrayAdapter(不是同一个类)。
问题在于 ArrayAdapter 通过添加、插入和删除提供同步访问和通知。所以同步访问只能通过一个而不是两个适配器实现。
ArrayAdapter 本身不可重用,因为使用了不同的视图。
所以问题是:一个 ArrayList 和多个 ArrayAdapter 的推荐架构是什么?
更新
我想澄清一下。目前我只有一个 ArrayAdapter。
- 数据存储在 ArrayList 中
- 服务正在通过 ArrayAdapter 在后台更新数据
- Activity 和服务都通过 ArrayAdapter 访问 ArrayList(多线程同步问题),但这不是问题,因为 ArrayAdapter 会进行锁定
现在我有另一个活动,它也应该显示相同的 ArrayList,但我不知道该怎么做。显然我需要另一个 ArrayAdapter,因为第二个活动有另一个布局。这意味着两个活动和一个服务正在访问同一个 ArrayList。 ArrayAdapter 的同步已经不够用了,因为锁在 ArrayAdapter 里面,也就是说如果 service 和 activity 1 都在使用 ArrayAdapter 1,ArrayAdapter 2 仍然会访问和修改 ArrayList。
【问题讨论】:
标签: android synchronization arraylist adapter android-arrayadapter