【问题标题】:Is it mandatory to write Contract, Provider and DbHelper in android to access remote database?是否必须在android中编写Contract,Provider和DbHelper才能访问远程数据库?
【发布时间】:2016-12-20 16:08:20
【问题描述】:
【问题讨论】:
标签:
java
android
performance
sqlite
android-sqlite
【解决方案1】:
它们不是强制性的。但是,最好使用这 3 个组件,因为它们可以更轻松地维护数据库。以下是有关每个组件的一些具体原因:
- 数据契约:帮助您很好地总结表格。当应用程序增长并且表数量增加时,这被证明非常重要。
- Content Provider:如果使用游标加载器加载数据,则需要 Content Provider。游标加载器是从 sqlite 加载数据的推荐方式,因为它在后台运行并且不会干扰 UI。否则,对大量数据的简单查询会使 UI 滞后。此外,如果您允许其他应用程序访问您应用程序的数据库,Content Provider 也可以作为一种抽象,以便其他应用程序可以在不知道数据库结构的情况下查询您的数据库。
- Open Helper:管理打开和升级数据库。这主要与 ContentProvider 一起使用。根据documentation:
此类使 ContentProvider 实现可以轻松地将数据库的打开和升级推迟到第一次使用,以避免因长时间运行的数据库升级而阻塞应用程序启动。