- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 SharedPreferences 2 文件 4 Content Provider 3 课程目录 数据库 Content Provider Content Provider 概述 创建 Content Provider Content Provider 更新的通知机制 访问 Content Provider Content Provider 概述 Content Provider 允许应用程序之间共享数据,通 话记录,多媒体数据等均是以 ContentProvider 的 格式存储。 Content Provider 提供了一系列标准的方法接口。 Content Provider 的数据可以使用文件、数据库等 多种方式存储。 每个 Content Provider 都拥有一个通用资源标识符 (URI) 作为身份标识。 ContentProvider 的优点 当应用继承 ContentProvider 类,并重写该类用于提 供数据和存储数据的方法,就可以向其他应用共享其 数据,虽然使用其他方法也可以对外共享数据,但数 据访问方式会因数据存储的方式而不同,如,采用文 件方式对外共享数据,需要进行文件操作读写数据, 采用 sharedPreferences 共享数据,需要使用 SharedPreferences API 读写数据。而使用 ContentProvider 共享数据的好处是统一了数据访问 方式。 Android 平台上常用的 Content Provider Browser :读取或修改标签、浏览历史和网络搜 索记录; CallLog :读取或修改通话记录 Contacts :读取或修改联系人信息; MediaStore :提供对多媒体文件(包括音频、视 频等)的读 / 写控制, MediaStore 中保存的文件可 以全局访问。 Settings :读取或修改设备设置信息。 Content Provider 的数据模型 Content Provider 以表格的形式将数据暴露给客户 端,每一行代表一条记录。 ContentProvider 原理 当一个应用程序需要把自己的数据暴露给其它程序使用时,该应用程序就可以通过提供 ContentProvider 来实现;其它应用程序使用 ContentResolver 来操作 ContentProvider 暴露的数据 . 一旦某个应用程序通过 ContentProvider 暴露了自己的数据操作接口,那么不管该 应用程序是否启动,其他应用程序都可以通过该接口操作该应用程序内部的数据 . 使用 ContentProvider 向外发布共享数据 当应用需要通过 ContentProvider 对外共享数据时,第一步需要继承 contentProvider 并重写下面 方法 : public class PersonContentProvider extends ContentProvider{ public boolean onCreate(); public URI insert (Uri uri,ContentValues values); public int delete(Uri uri,String selection,String[] selectionArgs); public int udpate(Uri uri,ContextValues values,String selection,String[] selectionArgs); public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder); public String getType(Uri uri); } 第二步需要在 AndroidManifest.xml 使用 provider 对该 ContentProvider 进行配置,为了能让其 他应用找到该 ContentProvider, ContentProvider 采用了 authorities( 主机名 / 域名 ) 对它进行唯一 标识,你可以把 ContentProvider 看作是一个网站, authorities 就是他的域名 : manifest …. application android:icon =“@ drawable
文档评论(0)