首先我们了解 ContentProvider组件
它 实现系统数据访问实现应用程序数据共享
补充一:
ContentProvider -数据提供者,
是Android四大组件之一,是程序之间数据共享的接口
Activity系统中对数据的访问限制是非常严格的,
不允许其他应用直接访问当前程序中存储在非SD卡中数据,
但是实际中我们经常会涉及到数据共享,
ContentProvider则是应用程序提供为外部访问的一个窗户,
为数据共享提供了统一的访问方法
补充二:
ContentProvide对数据进行封装,不用关心数据存储的细节。使用表的形式来组织数据
ContentProvider可以在不同的应用程序之间共享数据
Android为常见的一些数据提供了默认的ContentProvider(包括音频、视频、图片和通讯录等)
补充三:方法
1、ContentProvider类主要方法的作用:
public boolean onCreate():
该方法在ContentProvider创建后就会被调用,Android开机后,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)
用于供外部应用从ContentProvider中获取数据。 public String getType(Uri uri):用于返回当前Url所代表数据的MIME类型。
如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头
补充四:
1、ContentResolver操作ContentProvider中的数据
当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver 类来完成,要获取ContentResolver 对象,可以使用Activity提供的getContentResolver()方法
监听ContentProvider中数据的变化
如果ContentProvider的访问者需要知道ContentProvider中的数据发生变化,
可以在ContentProvider发生数据变化时调用getContentResolver().notifyChange(uri, null)
来通知注册在此URI上的访问者
例子:
QQ访问sd卡,读取图片,发送表情。
微信 访问通讯录,生成新的好友信息
代码效果:
一、添加学生:
查询学生:添加了几个,就能查询出几个
Android 数据共享:ContentProvider详解与应用

ContentProvider是Android四大组件之一,用于实现跨应用数据共享。它提供了一种统一的接口,让不同应用程序能安全地访问和操作其他应用的数据。通过ContentResolver,外部应用可以进行添加、删除、更新和查询操作。ContentProvider的主要方法包括onCreate(), insert(), delete(), update()和query()。此外,还可以通过ContentResolver监听ContentProvider中的数据变化。"
7403119,1275017,Struts2整合与依赖包异常解析,"['Struts2框架', 'Web开发', '依赖管理', '异常处理', 'JavaEE']
最低0.47元/天 解锁文章
8902

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



