安卓高级应用 - 多媒体和Service.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安卓高级应用 - 多媒体和Service

第六章 安卓高级应用 在Android中,熟练使用4大组件,对理解Andriod程序,开发高级功能有着至关重要的作用。本章将会逐一讲解Activity以外的3大组件:ContentProvider,BroadcastReceiver和Service的原理及应用,并且介绍以它们为基础开发的多媒体和电话短信等系统应用。 6.1 ContentProvider 6.1.1 ContentProvider简介 ContentProvider是Android的四大组件之一,用于保存和检索数据,是Android系统中不同应用程序之间共享数据的接口。Android系统中对一些常见的公用数据提供了ContentProvider接口,例如视频,音频,图像,个人通信信息等,都定义在vider包下。若开发着想将自己的程序的数据公开给其他应用程序使用,有两种方法:一种是定义自己的ContentProvider子类,另一种是将当前的数据添加到已有的ContentProvider中,我们下面主要讨论第一种情况。 6.1.2 使用ContentProvider 实现通过ContentProvider对外共享数据,需要2个步骤: 1)继承ContentProvider并重写下面方法 public class MyProvider extends ContentProvider public boolean onCreate public Uri insert Uri uri, ContentValues values public int delete Uri uri, String selection, String[] selectionArgs public int update Uri uri, ContentValues values, String selection, String[] selectionArgs public Cursor query Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder public String getType Uri uri 这其中除了常用的增删改查方法外,onCreate方法用于启动时初始化ContentProvider,getType方法用于返回Uri指定的ContentProvider中的数据的MIME类型。 2)在Manifest文件中注册Provider provider android:authorities com.spl.myprovider android:name spl.db.contentprovider.MyProvider / 为了能让其他应用找到该ContentProvider,ContentProvider采用了authorities(主机名/域名)对它进行唯一标识,你可以把 ContentProvider看作是一个网站,authorities 就是他的域名。 URI介绍 ContentProvider通过URI来共享数据。URI是一个通用资源标识符,它的构成如图6-1所示: 图6-1 URI的组成 从上图可见,一般URI由4部分构成: sheme:无法改变的标准前缀 主机名或authority:ContentProvider的唯一标示,在Manifes中声明 路径:可以理解为要操作的数据中表的名字 ID:需要获取的记录的ID,如果没有则表示返回全部记录 UriMatcher Android系统提供了UriMatcher类来对URI进行匹配。使用步骤如下: 首先创建UriMatcher类 然后通过addURI方法增加需要匹配的路径,并给每个路径标记一个匹配码 最后通过match方法进行匹配,返回匹配码 代码片段如下: private static UriMatcher matcher new UriMatcher UriMatcher.NO_MATCH ; private static final int CONTACTS 1;// 匹配码1 private static final int CONTACT 2;// 匹配码2 private static final String TABLENAME person; static matcher.addURI com.spl.myprovider, person, CONTACTS ; matcher.addURI com.spl.myprovider, person/#, CONTACT ; @Override public int delete Uri uri,

文档评论(0)

ybv639 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档