2016-02-28 53 views

回答

1

这个问题主要是根据意见,但概括起来:

1)只使用SqliteOpenHelper

你必须自己管理数据库访问。提供CRUD访问方法并拥有完全控制权。更新可以并且仍然应该使用SqliteOpenHelper来处理。

2)使用的ContentProvider和SqliteOpenHelper

这会给你通过框架方法访问你的数据库。它将使您能够使用CursorLoader(更改时自动刷新),SyncAdapter(同步更改为服务器)以及一些其他功能。由于您没有直接访问数据库,您将不得不使用URI路径来识别您的元素和发布查询。
这个选项有更好的文档记录,因为它是官方的android api,尽管在你最好地使用它之前你必须做一些阅读。


另外值得一提的,如果一些其他开发人员看你的代码,他们可能会知道如何使用您的ContentProvider(如果你保持一致),但他们将不得不读入你的源代码(或文档)了解如何使用您的自定义实现。

+0

要确定,你是否说只用SqliteOpenHelper不可能/很难使用SyncAdapter? – Nazerke

+1

@Nazerke SyncAdapter作为框架的一部分,旨在与内容提供商一起使用,我相信大多数教程也会使用它们。显然你不必使用ContentProvider,但我自己讨厌与框架对抗。 –

相关问题