什么是实现数据库框架的“Android方式”?Android数据库最佳实践?
这两个目标:
- 它应该是足够通用的,所以说“数据库”可以通过网络SQLite数据库什么的。
- 它应该是多线程安全的。 (更新:通过“线程安全”,我的意思是它不应该在主UI线程中运行,数据库调用不应该相互冲突,并且系统应该知道如何将结果通信回主UI线程。)
- 更新时间:应该了解的配置改变(如改变手机方向)
这就是我从这里聚集和Android文档:
- 使用LoaderManager查询数据。
- 创建ContentProvider(1 & 2使其线程安全)
- 在ContentProvider和数据之间放置额外的类。
但是,如何创建,更新和删除数据?据我所知,LoaderManager仅用于查询。我应该使用AsyncQueryHandler吗?
更新: AsyncQueryHandler不知道配置更改。我读过碎片可能是要走的路。或者...我必须确保我的AsyncQueryHandler实现处理配置更改。
关于目标1:相当困难的,但肯定的,ContentProvider的可以提供从远程数据库中,而不是本地SQLite数据库的内容。听起来像是一个很好的抽象使用 – zapl
我想问题是,所有这些似乎对我来说是碎片化的。我期待一个LoaderManager处理所有CRUD –
装载机的一点是,他们是异步加载数据到主线程的效用。他们不打算对C,U或D做任何事情。只是帮助R(eading)。如果你想坚持Android的现有抽象系统,使用ContentProvider,因为这是一个通用的CRUD接口,不限于任何类型的数据库。 – zapl