ContentProvider (内容提供器)简介
ContentProvider 主要用于在不同的应用程序之间实现数据共享的功能。
它提供了一套完整的机制,允许一个程序访问另外一个程序的数据,同时还能保证被访问数据的安全性。目前使用 Content Provider 是 Android 实现跨进称共享数据的标准方式。
Content Provider 不同于 文件存储 和 ShardPreferences存储 全局可读写操作模式,它可以选择只对哪一部分数据进行共享,从而保证我们程序中的隐私数据不会有泄漏的风险。
Content Provider 的用法一般有两种:1> 使用现有的内容提供器来读取和操作相应程序中的数据; 2> 创建自己的内容提供器给我们程序的数据提供外部访问接口
如果一个应用程序通过内容提供器对其数据提供了外部访问接口,那么任何其他的应用程序就都可以对这部分数据进行访问。 例如:系统中自带的电话簿、短信、媒体库等
程序都提供了类似的访问接口,这就使得第三方应用程序可以充分的利用这部分数据来实现更好的功能。
访问其他应用程序中的数据
- ContentResolver 的基本用法
对于每一个应用程序来说,如果想要访问内容提供器中共享的数据,就一定要借助 ContentResolver 类。
可以通过 Context 中的 getContentResolver() 方法获取到该类的实例。
ContentResolver 中提供了一系列的方法用于对数据进行 CRUD 操作,insert() 添加数据、update() 更新数据、delete() 删除数据、query() 查询数据。
创建自己的内容提供器
使用内容提供器,可以通过新建一个类去继承 Content Provider 的方式来创建一个自己的内容提供器。
Content Provider 类提供了六个抽象方法,我们在使用子类继承它的时候,需要将这几个方法全部重写。