是否必须在android中编写Contract,Provider和DbHelper才能访问远程数据库?

时间:2016-08-14 01:17:48

标签: java android performance sqlite android-sqlite

我正在从Udacity android Intermediate学习Android编程。 https://www.udacity.com/course/viewer#!/c-ud853/l-3599339441/m-3659838854他们在这里提到了编写合同,提供者和DbHelper来访问数据库。问题 1)这是(使用合同,提供者和数据库助手)访问数据库的正确做法吗? 2)我应该这样做以执行一个简单的select语句吗?

1 个答案:

答案 0 :(得分:1)

它们不是强制性的。但是,最好使用3个组件,因为它们使维护数据库变得更加容易。以下是有关每个组件的一些具体原因:

  • 数据合同:帮助您很好地总结表格。当应用程序增长并且表的数量增加时,这被证明是非常重要的。
  • Content Provider:如果使用游标加载器加载数据,则需要Content Provider。游标加载器是一种从sqlite加载数据的推荐方法,因为它在后台运行并且不会干扰UI。否则,对大量数据的简单查询会使UI滞后。此外,如果您允许其他应用程序访问您的应用程序的数据库,Content Provider也可以作为抽象,以便其他应用程序可以在不知道其结构的情况下查询您的数据库。
  • Open Helper:管理打开和升级数据库。这主要与ContentProvider一起使用。根据{{​​3}}:
  

此类使ContentProvider实现可以在第一次使用之前推迟打开和升级数据库,以避免因长时间运行的数据库升级而阻止应用程序启动。