在Android开发中,有时用户确实需要在应用之间进行数据的交换。我们知道通过指定文件的操作模式为 Context.MODE_WORLD_READABLE或 Context.MODE_WORLD_WRITEABLE同样也可以对外共享数据。但是如果采用文件操作模式对外共享数据,数据的访问方式会因数据存储的方式而不同,导致数据的访问方式无法统一,比如采用xml文件对外共享数据,需要进行xml解析才能读取数据;采用 sharedpreferences共享数据,需要使用sharedpreferences API读取数据。为此,Google提供了 ContentProvider (内容提供者),它可以实现统一的数据访问方式。
ContentProvider 常用类简介
ContentProvider(内容提供者)是Android 中的四大组件之一,主要用于对外共享数据,也就是通过ContenProvider 把应用中的数据共享给其他应用访问,其他应用可以通过 ContenProvider对指定应用中的数据进行操作。ContenProvider分为系统的和自定义的,系统的例如联系人、图片等数据。内容提供者提供的数据可以存储于文件系统、SOLite数据库或其他方式。
当应用需要通过ContentProvider 对外共享数据时,第一步需要继承 ContentProvider 并重写下面的方法。
需要被重写的 ContentProvider 类的主要方法如下:
public bolean onCreate() 在创建 ContentProvider 时调用此方法
Public Cursor query(Uri uri, String[] args1, Sring str1, String[] args2, String str2)
用于查询指定 Uri 的 ContentProvider,返回值为一个 Cursor 类型的数据集
public Uri insert(Uri uri, ContentValues cv) 用于添加数据到指定 Uri 的 ContentProvider 中,并返回一个Uri