content provider 介绍
content provider 是Android四大组件之一,其功能是在不同程序之间实现数据共享。在Android系统中,应用程序之间是相互独立的,分别运行在自己的进程中。若应用程序之间需要共享数据,就需要用到content provider 。它不仅允许一个程序访问另一个程序中的数据,同时还可以选择只对那一部分数据进行共享,从而保证程序中的营私数据不被泄露。
contentProvider是不同应用程序之间进行数据共享的标准api,如果想要访问content provider中共享的数据,需要借助contentResolver类来进行数据共享。contentReslover类通过uri的形式对数据进行增/删/改/查的操作。
uri为内容提供者中的数据建立了唯一标识符,它主要有scheme、authorities、path三部分组成,如下图所示
- scheme:以 “content://”开头的前缀,表明这个数据被contentProvider控制,不会被修改,由Android规定。
- authority:为创建的内容提供者指定属性值,主要用来区分不同的应用程序,一般为了避免冲突,都会采用程序包名的方式命名
- path:代表资源(或者数据),当访问者需要操作不同的数据时,这个部分可以动态修改。
ContentProvider的使用
1.创建contentProvider类
通过创建自定义ContentProvider类(该类继承ContentProvider抽象类),通过该类去实现对数据的增删改查。相关方法如下:
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
// Implement this to handle requests to delete one or more rows.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override</