Android ContentProvider与ContentResolver实现应用程序间的数据共享

来源:互联网 发布:2016全球网络摄影大赛 编辑:程序博客网 时间:2024/05/21 22:57

一、ContentProvider简介:

(一)、引入:

在Android当中数据库都只能由创建它的包访问,这意味着只有创建这个数据库的应用程序才可访问它。也就是说不能跨越进程和包的边界,直接访问别的应用程序的数据库。那么如何在应用程序间交换数据呢? 如果需要在进程间传递数据,可以使用ContentProvider来实现。


(二)、ContentProvider的功能和意义:

当一个应用程序需要把自己的数据暴露给其他应用程序使用时,该应用程序可以通过提供ContentProvider来实现;而其他应用程序需要使用这些数据时,可以通过ContentResolver来操作ContentProvider暴露的数据。

一旦某个应用程序通过ContentProvider暴露了自己的数据操作接口,那么不管该应用程序是否启动,其他应用程序都可以通过该接口来操作被暴露的内部数据,包括增加数据、删除数据、修改数据、查询数据等。

虽然大部分使用ContentProvider操作的数据都来自于数据库,但是也可以来自于文件、SharedPreferences、XML或网络等其他存储方式。


(三)、核心类:

  1. ContentProvider:(A应用暴露数据)
    一个程序可以通过实现一个ContentProvider的抽象类将自己的数据暴露出去
    外界根本看不到,也不用看到这个应用暴露的数据在应用当中是如何存储的,是用数据库存储还是用文件存储,还是通过网上获得,这些一切都不重要,重要的是外界可以通过这一套标准及统一的接口和程序里的数据打交道,可以读取程序的数据,也可以修改程序的数据。

  2. ContentResolver:(操作A应用所暴露的数据)
    外界的程序通过ContentResolver接口可以访问ContentProvider提供的数据

(未完待续)

2 0
原创粉丝点击