And*_*ves 15 sqlite android sqliteopenhelper
我是Android开发的新手.我正在尝试创建一个从内部数据库(SQLite)读取的应用程序,并列出列表中的所有数据(我正在使用listView).
到目前为止,我得到了一个名为DatabaseHandlerextends 的类SQLiteOpenHelper,它正在执行所有数据库操作(选择数据,插入数据,删除数据......).
但是现在我想列出这些值,我正在阅读一些我必须使用的网站,Loader而不是Cursor一个ContentProvider.到目前为止,我理解ContentProvider提供对数据库的受控访问.
我的问题是:ContentProvider做同样的事SQLiteOpenHelper吗?
此外,我正在使用API级别8,并且ContentProvider只能在API级别11上使用.解决此问题的最佳方法是什么?
提前致谢.
我的问题是:ContentProvider是否与SQLiteOpenHelper一样?
ContentProvider由应用程序的开发人员实现,如果他或她允许其他开发人员在他们的应用程序中访问应用程序的数据库 - 只需要进行共享.它就像一个数据库的服务器,它的客户端是ContentResolver谁知道ContentProvider的权威.例如,如果您需要从您的设备获取一些联系人,那么您应该使用ContentProviderContacts数据库,更具体地说,它是Contract类.
如果您知道适当的权限,ContentProvider您可以使用ContentResolver对象与其通信.
在其他情况下,您应该通过SQL抽象模型与数据库进行交互,该抽象模型由类android.database和android.database.sqlite类表示.
并且 - ContentProvider从主API级别可用作应用程序的主要组件之一.
从官方文档:
在开始构建提供程序之前,请执行以下操作:
确定您是否需要内容提供商.如果要提供以下一项或多项功能,则需要构建内容提供程序:
您希望向其他应用程序提供复杂的数据或文件. 您希望允许用户将应用中的复杂数据复制到其他应用中. 您希望使用搜索框架提供自定义搜索建议.
SQLiteOpenHelper用于管理数据库创建和打开.它只是sqlite数据库的辅助类,可以在db操作的任何地方使用.
ContentProvider是android的4个基本组件之一,其他3个是Activity,Service和Broadcast.ContentProvider用于管理对任何结构化数据集的访问,包括sqlite数据库.数据源ContentProvider可能是数据库,但不一定是.
ContentProvider通常用于向其他应用程序提供自己的数据,就像ContactsProvider和CalendarProvider.与ContentProvider直接提供数据库相比,提供一些指定的接口更安全.
| 归档时间: |
|
| 查看次数: |
9022 次 |
| 最近记录: |