我是 Android 开发新手。我正在尝试创建一个从内部数据库(SQLite)读取并列出列表中的所有数据的应用程序(我正在使用listView
).
到目前为止我有一门叫做DatabaseHandler
延伸SQLiteOpenHelper
这就是执行所有数据库操作(选择数据、插入数据、删除数据……)。
但现在我想列出这些值,我在一些网站上读到我必须使用Loader
代替Cursor
,因此ContentProvider
。到目前为止我明白了ContentProvider
提供对数据库的受控访问。
我的问题是:ContentProvider
做同样的事情SQLiteOpenHelper
?
另外,我正在使用 API 级别 8 和ContentProvider
仅适用于 API 级别 11。解决此问题的最佳方法是什么?
提前致谢。
我的问题是:ContentProvider 的作用与
SQLiteOpenHelper?
ContentProvider
由应用程序的开发人员实现,如果他或她允许其他开发人员在其应用程序中访问应用程序的数据库 - 只需将sharing。它就像某个数据库的服务器,它的客户端是ContentResolver
谁知道ContentProvider
的权威。例如,如果您需要从设备获取一些联系人,那么您应该使用ContentProvider
联系人数据库,更具体地说是合约类 http://developer.android.com/reference/android/provider/ContactsContract.html.
如果您知道适当的权威机构ContentProvider
您可以使用ContentResolver
目的。
在其他情况下,您应该通过 SQL 抽象模型与数据库交互,该模型表示为android.database http://developer.android.com/reference/android/database/package-summary.html and android.database.sqlite http://developer.android.com/reference/android/database/sqlite/package-summary.html类。
并且 -ContentProvider
可从主要 API 级别作为应用程序的主要组件之一使用。
Update
来自官方文档:
在开始构建提供程序之前,请执行以下操作:
决定您是否需要内容提供商。您需要构建一个内容
provider 如果您想提供以下一项或多项功能:
您想要向其他应用程序提供复杂的数据或文件。
您希望允许用户将复杂数据从您的应用程序复制到其他应用程序中。
您希望使用搜索框架提供自定义搜索建议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)