本文主要是介绍【Android 简单通信组件学习】ContentProvide 唯一与所有app交互的组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先我们了解 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 简单通信组件学习】ContentProvide 唯一与所有app交互的组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!