2、执行query()方法,查询全部记录(眼下一共两条记录)。后台输出效果例如以下:

经測试,其它方法也都是能够运行的。

事实证明,新建的另外一个project文件ContentResolverTest中。在里面执行单元測试。也是可以执行的(单元測试的代码不变,实现的CRUD功能也一模一样),也就是说,可以对ContentProviderTest01中的SQLite进行CRUD操作。

比如,执行query()方法,后台输出例如以下:

这样,我们的目的也就达到了。

【特别注意】

须要特别注意的是,代码中uri不要写错了,这些错误一旦发生。非常难被发现。

详细表如今:

1、清单文件里:

<provider
android:name=".内容提供者的类名"
android:authorities="包名.内容提供者的类名" >
</provider>

如:

        <provider
android:name=".PersonContentProvider"
android:authorities="com.example.contentprovidertest01.PersonContentProvider" >
</provider>

2、ContentProvider类中的UriMatcher中的uri:

 1     private static final UriMatcher URI_MATCHER = new UriMatcher(
2 UriMatcher.NO_MATCH);// 默认的规则是不匹配的
3 private static final int PERSON = 1; // 操作单行记录
4 private static final int PERSONS = 2; // 操作多行记录
5 // 往UriMatcher中加入匹配规则。 注意,这里面的url不要写错了,我就是由于写错了,半天没调试出来。哎···
6 static {
7 // 加入两个URI筛选
8 URI_MATCHER.addURI("com.example.contentprovidertest01.PersonContentProvider",
9 "person", PERSONS);
10 // 使用通配符#,匹配随意数字
11 URI_MATCHER.addURI("com.example.contentprovidertest01.PersonContentProvider",
12 "person/#", PERSON);
13 }

3、ContentProvider类中的getType()方法里面的代码:

 1     @Override
2 public String getType(Uri uri) {
3 int flag = URI_MATCHER.match(uri);
4 switch (flag) {
5 case PERSON:
6 return "vnd.android.cursor.item/person"; // 假设是单条记录,则为vnd.android.cursor.item/
7 // + path
8 case PERSONS:
9 return "vnd.android.cursor.dir/persons"; // 假设是多条记录,则为vnd.android.cursor.dir/
10 // + path
11 }
12 return null;
13 }

4、ContentResolver类中的uri:(以insert()方法为例)

 1     //測试方法:向数据库中加入记录。

假设之前没有数据库。则会自己主动创建
2 public void insert() {
3 // 使用内容解析者ContentResolver訪问内容提供者ContentProvider
4 ContentResolver contentResolver = getContext().getContentResolver();
5 ContentValues values = new ContentValues();
6 values.put("name", "生命贰号");
7 values.put("address", "湖北");
8 // content://authorities/person
9 // http://
10 Uri uri = Uri
11 .parse("content://com.example.contentprovidertest01.PersonContentProvider/person");
12 contentResolver.insert(uri, values);
13 }

Android组件系列----ContentProvider内容提供商【5】的更多相关文章

  1. Android组件系列----ContentProvider内容提供者

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. Android组件系列----ContentProvider内容提供者【1】

    [正文] 一.ContentProvider简单介绍: ContentProvider内容提供者(四大组件之中的一个)主要用于在不同的应用程序之间实现数据共享的功能. ContentProvider能 ...

  3. Android组件系列----ContentProvider内容提供者【4】

    (4)单元測试类: 这里须要涉及到另外一个知识:ContentResolver内容訪问者. 要想訪问ContentProvider.则必须使用ContentResolver. 能够通过ContentR ...

  4. Android组件系列----BroadcastReceiver广播接收器

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  5. Android组件系列----Activity组件详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  6. Android组件系列----Android Service组件深入解析

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. Android组件系列----Intent详解(转载笔记)

    [正文] Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用 ...

  8. Android组件系列----Intent详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. Android 组件系列-----Activity初步

    在上篇博文讲解了Android的Activity这个组件的启动流程后,接下来我们就来看看我们的Activity与我们的布局文件的关系吧 我们先来看看一个最简单的布局文件的内容: <Relativ ...

随机推荐

  1. DataInputStream类readLong()引起的思考

    今天无意中看了下jdk中的DataInputStream类,然后看到readLong()方法,如下: private byte readBuffer[] = new byte[8]; public f ...

  2. Mysql经常使用命令

    1.导出整个数据库 mysqldump -u username -p --default-character-set=latin1 数据库名 > 导出的文件名称(数据库默认编码是latin1) ...

  3. iOS使用CoreImage处理图像40中可用的滤镜名称

    NSString* localPath = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"jpg"] ...

  4. Xamarin 安装步骤

    原文:Xamarin 安装步骤 1.下载并解压吾乐吧软件站提供的“Mono for Android 离线包” 安装:jdk-6u45-windows-i586.exe (就算你是64位系统,也要安装i ...

  5. HibernateReview Day1 - Introduction

    Hibernate已经学过去大概有半个月了,然后默默的忘掉了……所谓Practice makes perfect. 我尽力重新拾起来. 1.什么是ORM 在介绍Hibernate之前,我们先学习下OR ...

  6. [HDU 1427]速度计算24点(DFS暴力搜索)

    主题连接:  pid=1427">http://acm.hdu.edu.cn/showproblem.php?pid=1427 思路:简单的DFS.dfs(sum,next,p)表 ...

  7. Django操作model时刻,一个错误:AttributeError:’ProgrammingError’ object has no attribute ‘__traceback__’

    原因:在Django项目下对应的应用以下的models.py配置的model(也就是class)没有创建成对应的表. 这是怎么回事呢? 首先,将models.py里面的model创建成相应的数据库表的 ...

  8. 数据市中心全省中国mysql脚本

    1.查尔斯省 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2h6aGFvY2hhbw==/font/5a6L5L2T/fontsize/400/fill ...

  9. ASP.NET Core 1.0 部署 HTTPS

    ASP.NET Core 1.0 部署 HTTPS ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1) 提示 更新时间:2016年01月23日. 在目前介 ...

  10. Windows Phone 8 - Runtime Location API - 1

    原文:Windows Phone 8 - Runtime Location API - 1 在Windows Phone里要做Background Service的方式,除了Background Ag ...