【发布时间】:2014-04-18 19:00:48
【问题描述】:
我必须解决一个理论问题,只是想获得有关在 android 中解决此问题的最佳模式/实践的反馈。
任务: 一个应用程序可以有多个显示对象列表的活动/片段。如果一个对象同时出现在多个列表中,我想同步对该对象的更改。所以例如如果我删除该对象,它应该会在所有列表中消失。
限制是
- 我不知道当前实例化了哪些列表
- 每个列表都有自己的对象实例。数据不直接在列表之间共享
到目前为止,我的解决方案是
- 定义一个提供数据访问方法的存储类
- 创建一个自定义应用程序类并使用应用程序上下文实例化存储类(例如内容提供程序访问所需要的)
- Storage 类定义了一个 Listener,每个活动都可以在其中注册自己
- 如果一个活动修改了一个对象,它必须通过(应用程序)存储来完成,存储类会向每个注册的活动/片段发送一个事件,以便它们可以采用更改。
有没有人知道更好的解决方案?我的解决方案是否符合 android 生命周期?
非常感谢各种有用的反馈
【问题讨论】:
-
developer.android.com/reference/android/content/… ContentProviders 应该会提供您寻求的答案。
-
感谢您的提示。正如@dangVarmit 已经提到的,我可以向内容解析器注册一个侦听器以获取有关更改的通知。但是,它没有为我提供正在更改的实际对象。当我正在寻找最优雅/最简单的解决方案时,将我的方法与 Otto 一起用作 EventBus 会更好吗?
标签: android design-patterns android-fragments synchronization communication