在系统部署一个又一个Android应用之后,系统里将会包含多个Android应用,有时候需要在不同的应用之间共享数据,比如现在又一个短息接收应用,用户想吧数据接收到陌生短息的发信人添加到联系人管理应用中,就需要在不同应用之间共享数据。对于这种需要在不同应用之间共享数据的需求,当然可以让一个应用程序直接去操作另一个应用程序所记录的数据,比如操作它所记录的SharedPerferences,文件或者是数据库,这种方式太杂乱了:不同的应用程序记录数据的方式差别很大,这种方式不利于应用程序之间进行数据交换。
为了在应用程序之间交换数据,Android提供了ContentProvider,ContentProvider是不同应用程序之间进行数据交换的标准API,当一个应用程序需要把自己的数据暴露给其他程序使用时,该应用程序就可以通过提供ContentProvider来实现;其他应用程序就可以通过ContentProvider来操作ContentProvider暴漏的数据。
ContentProvider也是Android应用的四大组件之一,与Activity、Service/BroadcaseReceiver的相似,他们需要在AndroidMainfest.xml文件中进行配置。
一旦某个应用程序通过ContentProvider暴漏了自己的数据操作接口,那么不管该应用程序是否启动,其他应用程序都可以通过该接口来操作该应用程序的内部数据,包括增加数据、删除数据、修改数据、查询数据等。