我问你答-什么是 Content Providers

官方定义:帮助应用获取自身存储的数据,其他应用的数据,以及对外提供数据。
另外,要注意区别「Content Providers」和「Content Provider」前者是接下去要说的一套机制,后者是 android.content 包下面的具体一个类。

不过这些功能通过其他方式也可以做到,之所以通过 Content Providers,主要是它提供了一套数据安全机制,规范了数据存取。

就如官方文档所说,它为跨进程的数据读取提供了一套标准接口。就如面向对象的封装特性一样,可已做到自身或者和其他应用的解耦。

举个例子,一般情况下,如果应用要本地存储些数据,会用到 SharedPereference 或者 数据库,而数据库又会有多种的具体实现,例如 GreenDao 或者 OMRLite 等。如果不借助 Content Providers 在存取数据时就会暴露具体的实现细节,同时如果要更换或者迁移,又或者是新起项目就会显的哪里都有关联,哪里都有约束。

可如果加入 Content Providers 这层,那么底层的具体数据存取实现就会被屏蔽掉,应用对自身数据的存取就会通过 Content Providers 完成,之后也不再关心用的是 GreenDao 还是 SharedPereference。当然提供给其他应用也是类似的。

在可管理的数据类型上,Content Providers 支持数据库,图片,音视频等。

你可能感兴趣的:(我问你答-什么是 Content Providers)