这几天的学习,都是Android很实用的地方.所以练习起来,特别的有精神.今天主要学习的是Android中,统一数据访问的方式,和一些为了方便开
发.由系统提供的一些实用的工具类.如:用于匹配Uri的UriMatcher和获取Uri路径后面ID的ContentUris.这在工作中一定会用到
的,所以要认真的终结.
1.使用ContentProvider共享数据
1)继承 ContentProvider 并重写方法
ContentProvider创建后就会被调用:public
boolean onCreate()
供外部应用往ContentProvider添加数据:public Uri
insert(Uri uri, ContentValues values)
供外部应用从ContentProvider删除数
据:public int delete(Uri uri, String selection, String[] selectionArgs)
供
外部应用更新ContentProvider中的数据:public int update(Uri uri, ContentValues
values, String selection, String[] selectionArgs)
供外部应用从
ContentProvider中获取数据:public Cursor query(Uri uri, String[] projection,
String selection, String[] selectionArgs, String sortOrder)
返回当前Url所代
表数据的MIME类型:public String getType(Uri uri)
2)在 AndroidManifest.xml 使用 <provider> 对该
ContentProvider 进行配置
<provider
android:name=".PersonContentProvider"
android:authorities="cn.itcast.provider.personprovider"/>
3)使用ContentResolver操作ContentProvider中的数据
-
添加数据: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)
总结:
--ContentProvider共享数据是程序和程
序之间通信用的.
--继承ContentProvider类
--统一了数据访问方式
2.Uri
Uri代表
要操作的数据
content://cn.itcast.provider.personprovider/person/10
-scheme:content://
-
主机名或authority:cn.itcast.provider.personprovider
-路径:/person/10
总结:
--Uri 主要包含了两部分信息:需要操作的
ContentProvider,对ContentProvider中的什么数据进行操作
--要操作 person 表中 id 为 10
的记录,可以构建这样的路径 :/person/10
--要操作 person 表中 id 为 10 的记录的 name 字段,
person/10/name
--要操作 person 表中的所有记录,可以构建这样的路径 :/person
--要操作 xxx
表中的记录,可以构建这样的路径 :/xxx
3.UriMatcher
UriMatcher
类用于匹配Uri
UriMatcher sMatcher = new UriMatcher(UriMatcher.NO_MATCH);
添
加需要匹配uri,如果匹配就会返回匹配
码:sMatcher.addURI(“cn.itcast.provider.personprovider”, “person”, 1);//
sMatcher.addURI(“cn.itcast.provider.personprovider”,
“person/#”, 2);
switch
(sMatcher.match(Uri.parse("content://cn.itcast.provider.personprovider/person/10")))
{
case 1
break;
case 2
break;
default:// 不匹配
break;
}
总结:
--常量 UriMatcher.NO_MATCH 表示不匹配任何路径的返回码
--# 号为通配符
4.ContentUris
ContentUris
类用于获取Uri路径后面的ID部分
1)为路径加上ID:
withAppendedId(uri, id)
Uri uri =
Uri.parse("content://cn.itcast.provider.personprovider/person")
Uri
resultUri = ContentUris.withAppendedId(uri, 10);
--生成后的 Uri 为:
content://cn.itcast.provider.personprovider/person/10
2)从路径中获取ID: parseId(uri)
Uri
uri = Uri.parse("content://cn.itcast.provider.personprovider/person/10")
long
personid = ContentUris.parseId(uri);
--获取的结果为 :10
相关推荐
使用ContentProvider和ContentResolver实现应用程序间的数据共享
MyProvider项目中的MyProvider.java package practise.lxm.myprodiver; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri;
ContentProvider与ContentResolver使用
如下内容为从网络转载: 使用ContentProvider共享数据: 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sha
基础篇:7.Content provider与Content Resolver实现数据共享
前言: 文件数据、数据库数据以及一些其它类型的数据在android中都是私有的,在android中,并没有提供所有应用共同访问的公共储存区域。但各应用程序间通常需要进行数据共享,如联系人信息等。 在android中,应用程序可以实现Content Provider的抽象接口从而将自己的数据暴露出去。Content Provider拥有一套通用的方法来实现对数据的增、删、改、查功能。但通...
Android 应用程序之间数据共享—ContentProvider
源自:http://www.moandroid.com/?p=157 在Android 应用程序之间数据共享—-ContentResolver中,已经说明了Android是如何实现应用程序之间数据共享的,并详细解析了如何获取其他应用程序共享的数据。ContentProviders存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。那么如何将应用程序的数据暴露
ContentProvider之UriMatcher
上一篇文章中说到CP(ContentProvider简称)不一定使用数据库,但是我们使用CP一般都是用来进程通讯的,数据跨进程传输以后我们一般都会进行保存的,所以一般情况下用到CP都会用到数据库,所以CP在被继承以后会要求使用者复写几个增删改查的方法,当然保存数据也有其他的方式不一定使用数据库。 今天主要说说UriMatcher这个类的使用,我们在创建CP的子类以后在使用的时候一般都会使用到它,一...
Android(四)数据存储之四ContentProvider
早上我们简要的对SQLite进行回顾,然后将SQLite的事务管理和SQLiteDataBase提供的Insert、Update、Delete、Query方法进行了简单的讲解。 今日的重点内容是ContentProvider(内容提供者)和网络存储,我将对这两大内容进行总结。关于SQLiteDataBase提供的便捷方法,它们会在ContentProvider被使用。SQLite的事务管理比较...
ContentProvider,Uri,ContentResolver,UriMatcher详解
前言正如标题,四个类组成一种数据共享解决方案。下面会介绍如何使用系统提供的Api进行数据在不同应用间共享 (数据存储使用sqlite db)ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问, 其他应用可以通过ContentProvider对你应用中的数据进行添删改查。关于数据共享,以前我
ContentProvider与ContentResolver
ContentProvider与ContentResolver及ContentObserve监听
内容提供器之 权限申请&ContentResolver& git用法
内容提供器 不同应用程序间的数据共享,允许访问,保证安全 不同与文件与SharedPreferences的全局可读写,内容提供器可选择只对哪一部分进行共享 Android权限机制 普通权限和危险权限 普通:不威胁用户安全和隐私,系统自动授权; 危险:用户手动授权,运行时权限看起来用的是权限名,实际对应权限组的其他权限也会同时被授权, ...
Android基础——ContentProvider和contentResolver
ContentProviderContentProvider是什么?权限运行时权限 ContentProvider是什么? 利用ContentProvider可实现在不同应用程序之间的数据共享,并保证被访问数据的安全性。 权限 普通权限:不会直接威胁到用户安全和隐私的权限,这部分权限会自动授权,不再需要手动操作 危险权限:可能会触及用户隐私或对设备安全性造成影响的权限,必须要由用户手动授权,否则无法使用。危险权限需要进行运行时权限处理 运行时权限 ...
Android ContentProvider以及权限设置 sdk初始化方式
首先了解一下创建一个ContentProvider类需要哪些必要的参数(要继承ContentProvider父类): 1.URI(重写的每个函数中都会用得到的参数) 2.MIME类型 因为重写的方法中要重写一个方法叫做getType()来返回MIME型 3.重写四个增删改查函数; 那如何访问到另一个进程中的ContentProvider呢? ...
Android:ContentProvider、URI、UriMatcher、ContentUris、ContentResolver、ContentObserver
使用ContentProvider共享数据【组件必须放在应用包或者子包下面,还需要在清单文件中配置,像图库、短信、通讯录都是内容提供者】 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。以前我们学习过文件的操作模式,通过指定文件的操作模式为Context.MODE_WORLD_READABLE或Context.MODE_WORL
ContentProvider(内容提供者),UriMatcher(Uri匹配器)
ContentProvider:内容提供者的作用 应用程序创建的数据库默认都是私有的,别的应用程序不可以访问里面的数据。 如果有需求把自己应用程序私有的数据库暴露给别的用户增删改查,就需要使用内容提供者
Android APP完整基础教程(08)四大组件-ContentProvider
1 ContentProvider相关概念 ContentProvider是跨应用数据交换的标准,主要用于在许可的情况下获取其他应用的数据。为了更好的了解ContentProvider,我们需要了解URI和MIME。 1.1 URI(Uniform Resource Identifier)统一资源标识符 这个标识符主要用于唯一标识 ContentProvider和其中的数据。URI 为系统中的每一个资源赋予一个名字。 1.1.1 URI格式解读 每一个 ContentProvider 都拥有一个公
说说 Android 的内容提供器(ContentResolver )
如果一个 APP 使用内容提供器对其数据提供了对外访问的接口,那么任何其他的 APP 都可以访问这部分的数据啦,像 Android 中的电话簿、短信等程序都提供了类似的访问接口。 1 ContentResolver 基础 ContentResolver 中提供了一系列方法用于对数据进行 CRUD 操作: 方法 说明 insert() 添加数据。 upd...
十二、ContentProvider和Uri详解
一、使用ContentProvider(内容提供者)共享数据 ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用中的数据进行添删改查。关于数据共享,以前我们学习过文件操作模式,知道通过指定文件的操作模式为Context.MODE_WORLD_...
Android 面试题之ContentProvider使用+实例
ContentProvider是Android的四大组件之一,以标准化的方式在Android 应用间共享数据。ContentProvider封装的数据存储以及增删改查等,并且必须实现一个对外统一的接口(Uri)。Uri(通用资源标识符 Universal Resource Identifer),代表数据操作的地址,每一个ContentProvider都会有唯一的地址。ContentProvider使用的Uri语法结构如下:是通用前缀,表示该Uri用于ContentProvider定位资源。
1132




被折叠的 条评论
为什么被折叠?



