一、简介
ContentProvider是android四大组件之一的内容提供者,它主要的作用就是将程序的内部的数据和外部进行共享,为数据提供外部访问接口,被访问的数据主要以数据库的形式存在(可以是任意数据),而且还可以选择共享哪一部分的数据。这样一来,对于程序当中的隐私数据可以不共享,从而更加安全。ContentProvider是android中一种跨程序共享数据的重要组件。
二、基本知识
1、ContentProvider开发步骤
1)、继承ContentProvider,实现query()、insert()、update()和delete()等方法
2)、在AndroidManirest.xml文件中注册该ContentProvider,并指定authorities属性。设置android:exported="true"。是否允许其他应用调用
2、ContentResolver开发步骤
1)、获取getContentResovler
Context.getContentResovler()
2)、调用ContentResovler的query()、insert()、update()和delete()操作数据。实际上就是调用指定url对应的ContentProvider的query()、insert()、update()和delete()
3)、监听ContentProvider数据的改变
contentResolver.registerContentObserver(uri, true, new ContentObserver());
3、ContentProvider和ContentResolver的关系
1)、ContentProvider提供数据
2)、ContentResolver操作数据
4、UriMatcher
1)、void addURI(String authority, String path, int code)。向UriMatcher注册Uri
2)、int match(Uri uri)。根据前面注册的Uri来判断指定对的Uri对应的标识码
5、ContentUris
1)、withAppendendid(uri, id)。为uri加上id部分
2)、parseId(uri)。从uri解析出所包含的ID值