Android(安卓)之使用ContentProvider(内容提供者)共享数据
16lz
2021-01-24
l 使用 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="cn.itcast.providers.personprovider"/> </application> </manifest> */
更多相关文章
- 【转】Android深入探究笔记之三 -- Intent (隐式意图和显示意图)
- Android(安卓)5.1编译大于2G的OTA包是会出 Android(安卓)Overflo
- 19個好用的Android開發工具(Written By: ventans Leo)
- Android多语言适配values文件夹命名
- Android(安卓)在TextView 中显示图片的4种方式
- 【Android】xml文件里面出现unbound prefix的问题
- Android(安卓)SQLite数据库增删改查操作
- Android(安卓)Service服务的相关介绍
- 完美解决 No IDEA annotations attached to the JDK 1.8 (C:\Pr