实现数据库框架的“Android方式”是什么?
两个目标:
- 它应该足够通用,以便“数据库”可以是 sqlite 数据库或网络上的其他东西。
- 它应该是多线程安全的。(更新:通过“线程安全”,我的意思是它不应该在主 UI 线程中运行,数据库调用不应该相互冲突,并且系统应该知道如何将结果传达回主 UI 线程。)
- 更新:它应该知道配置更改(例如更改手机方向)
这是我从这里和 Android 文档收集的内容:
- 使用 LoaderManager 查询数据。
- 创建一个 ContentProvider(1 和 2 使其线程安全)
- 在 ContentProvider 和数据之间放置一个额外的类。
但是,如何创建、更新和删除数据呢?据我所知,LoaderManager 仅用于查询。我应该使用 AsyncQueryHandler 吗?
更新: AsyncQueryHandler 不知道配置更改。我读过片段可能是要走的路。或者...我必须确保我的 AsyncQueryHandler 实现处理配置更改。