欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android——四大组件ContentProvider

程序员文章站 2022-03-30 10:13:16
文章目录AndroidAndroid四大组件——ContentProvider1 简介2 ContentProvider配置2.1 ContentResolver类2.2 ContentProvider类3 Uri的使用4 数据读取Android安卓开发者指南:https://developer.android.google.cn/guideAndroid常用四大组件:1.Activity2.Service3.Content provider4.Broadcast receiverAndro...

Android

安卓开发者指南:https://developer.android.google.cn/guide
Android常用四大组件:
1.Activity
2.Service
3.Content provider
4.Broadcast receiver

Android四大组件——ContentProvider

(1)android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。

(2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。

(3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。

(4)开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。

(5)ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

来源:https://blog.csdn.net/ican87/article/details/21874321
这部分有个大概了解,之后再补充…

1 简介

为存储和获取数据提供统一的接口。可以在不同的应用程序之间共享数据。对于ContentProvider而言,无论数据的来源是什么,他都认为是种表,然后把数据组织成表格。
Android——四大组件ContentProviderAndroid——四大组件ContentProvider

2 ContentProvider配置

1.自定义类继承ContentProvider,实现要求的方法;
2.在配置文件中通过provider标签配置,通过android:name属性指定待配置的类,通过android:authorities属性授权,指定当前内容提供者的uri标识,必须唯一。
Android——四大组件ContentProvider

2.1 ContentResolver类

内容处理者,该类提供了和ContentProvider中同名同参的增、删、改、查的方法,通过URI 采用对应的方法来操作ContentProvider提供的数据。
Android——四大组件ContentProvider
Android——四大组件ContentProvider

2.2 ContentProvider类

内容提供者,提供的方法:
创建:boolean onCreate(),可以进行数据库的创建
获取数据类型:String getType(Uri uri)
查询:Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
添加:Uri insert(Uri uri, ContentValues values)
更新:int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
删除:int delete(Uri uri, String selection, String[] selectionArgs)
Android——四大组件ContentProvider

3 Uri的使用

URI 的解析

  1. UriMatcher:在ContentProvider创建时,制定好匹配规则,当调用了ContentProvider中的操作方法时,利用匹配类去匹配传的uri,根据不同的uri给出不同的处理。(UriMatcher还可以使用匹配通配符来匹配任意不确定的值)
  2. Uri 自带的解析方法

3.1 UriMatcher

制定好匹配规则
UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH); //代表无法匹配
matcher.addURI(“com.lxy.myprovider”,“hellowrld”,1000);
matcher.addURI(“com.lxy.myprovider”,“hellowrld/abc”,1001);
matcher.addURI(“com.lxy.myprovider”,“hellowrld/#”,1002); //任意数字
matcher.addURI(“com.lxy.myprovider”,“hellowrld/*”,1003); //任意字符
消息提供者:
Android——四大组件ContentProvider
Android——四大组件ContentProvider
消息处理者:
Android——四大组件ContentProvider

3.2 Uri自带的方法

消息提供者:
Android——四大组件ContentProvider

消息处理者:
Android——四大组件ContentProvider

4 数据读取

访问手机短信,联系人
Cursor可以想象成一张表

4.1 读短消息

Android——四大组件ContentProvider
只关注想要的列的话:
Android——四大组件ContentProvider

content://sms 短信箱
content://sms/inbox 收件箱
content://sms/sent 发件箱
content://sms/draft 草稿箱

注意要给权限:< uses-permission android:name=“android.permission.READ_SMS”/>

4.2 读联系人

注意要给权限:< uses-permission android:name=“android.permission.READ_CONTACTS”/>
Android——四大组件ContentProvider

4.3 添加联系人

Android——四大组件ContentProvider

本文地址:https://blog.csdn.net/weixin_45044097/article/details/107214305