一、使用ContentProvider(内容提供者)共享数据
ContentProvider在android中的作用是对外共 享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过 ContentProvider对你应用中的数据进行添删改查。关于数据共享,以前我们学习过文件操作模式,知道通过 指定文件的操作模式为Context.MODE_WORLD_READABLE或Context.MODE_WORLD_WRITEABLE同样也可以对外共享 数据。那么,这里为何要使用ContentProvider对外共享数据呢?是这样的,如果采用文件操作模式对外共享 数据,数据的访问方式会因数据存储的方式而不同,导致数据的访问方式无法统一,如:采用xml文件对外共 享数据,需要进行xml解析才能读取数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读取数据。
使用ContentProvider对外共享数据的好处是统一了数据的访问方式。
当应用需要通过 ContentProvider对外共享数据时,第一步需要继承ContentProvider并重写下面方法:
public class PersonContentProvider extends ContentProvider{ public boolean onCreate() 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) public String getType(Uri uri) }
第二步需要在AndroidManifest.xml使用<provider>对该ContentProvider进行配置,为了能 让其他应用找到该ContentProvider ,ContentProvider采用了authorities(主机名/域名)对它进行唯一标 识,你可以把ContentProvider看作是一个网站(想想,网站也是提供数据者),authorities 就是他的域名 :
<manifest.... > <application android:icon="@drawable/icon" android:label="@string/app_name"> <provider android:name=".PersonContentProvider" android:authorities="com.ljq.providers.personprovider"/> </application> </manifest>
二、Uri介绍
Uri代表了要操作的数据,Uri主要包含了两部分信息:1》 需要操作的ContentProvider ,2》对ContentProvider中的什么数据进行操作,一个Uri由以下几部分组成:
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, 数据
, 应用
, uri
, public
, contentprovider
, contentprovider详解
, contentprovider实例
, contentprovider的uri
Android共享数据
contentprovider uri、contentprovider详解、content provider详解、android content uri、android uri详解,以便于您获取更多的相关知识。