ContentProvider

423 阅读1分钟

一、定义

ContentProvider,即内容提供者,属于Android的四大组件之一


二、作用

进程间进行数据交互&共享,即跨进程通信图片来源



三、原理

ContentProvider的底层是采用Android中的Binder机制


四、具体使用

图片来源

ContentResolve类

  • 作用:

统一管理不同ContentProvider间的操作

1、通过URL即可操作不同的ContentProvider中的数据

2、外部进程通过ContentResolver类从而与ContentProvider类进行交互

  • 为啥要使用通过ContentResolver类从而与ContentProvider类进行交互,而不直接访问ContentProvider类?

一般来说,一款应用要使用多个ContentProvider,若需要了解每个ContentProvider的不同实现从而再完成数据交互,操作成本高且难度大

在ContentProvider类上加多了一个ContentResolver类对所有的ContentProvider进行统一管理


优点

1、安全

ContentProvider为应用间的数据交互提供了一个安全的环境,允许把自己的应用数据根据需求开放给其他应用进行增删改查,而不用担心因为直接开放数据库权限带来的安全问题。


2、访问简单且高效

相对于其他对外共享数据的方式,数据访问方式会因数据存储的方式而不同:

  • 采用文件方法对外共享数据,需要进行文件操作读写数据;
  • 采用SharedPreferences共享数据,需要使用sharedPreferences API读写数据,这使得访问数据变得复杂且难度大。
  • 此阿勇ContentProvider方式,其解耦了底层数据的存储方式,使得无论底层数据存储采用何种方式,外界对数据的访问方式都是统一的,这使得访问简单且高效。


图片来源