Android系统和其他操作系统不同,在Android中数据是私有的,当然这些数据包括文件数据、数据库数据以及一些其他类型的数据,那么,两个程序之间有没有办法进行数据交换?Android对这个问题的解决主要依赖ContentProvider。一个ContentProvider类实现一组标准的方法接口,从而能够让其他的应用保存或读取此ContentProvider的各种数据类型。也就是说,一个程序可以通过实现ContentProvider的抽象接口将自己的数据暴露出去。外界根本看不到、也不用看到这个应用暴露的数据在应用当中是如何存储的,比如是用数据库存储,还是用文件存储,或是通过网上获得,这些都不重要,重要的是外界可以通过这套标准及统一的接口与程序里的数据打交道,可以读取程序的数据,也可以删除程序的数据,当然,这中间也会涉及权限的问题。
一个程序可以通过实现ContentProvider的抽象接口将自己的数据完全暴露出去,而且ContentProviders是以类似数据库中表的方式将数据暴露,也就是说,ContentProvider本身就像一个“数据库”。那么,外界获取其提供的数据也就应该与从数据库中获取数据的操作基本相同,只不过采用URI来表示外界需要访问的“数据库”。
ContentProvider提供了一种多应用间数据共享的方式。例如,联系人信息可以被多个应用程序访问。(www.xing528.com)
ContentProvider是实现了一组用于提供其他应用程序存取数据的标准方法的类。应用程序可以在ContentProvider中执行查询数据、修改数据、添加数据和删除数据。
Android提供了一些已经在系统中实现的标准ContentProvider(如联系人信息、图片库等),所以,可以用这些ContentProvider来访问设备上存储的联系人信息、图片等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。