您的位置:华清远见教育科技集团 >> Android资料 >> Android Content Providers  
 
Android Content Providers
分享到:

不同于之前讲到的Android应用组件,如与用户直接交互UI组件Activity;运行在后台、用户不可见的服务组件Service以及进行系统消息广播的广播组件Broadcast Receivers。内容提供器(Content Providers)是Android提供的一个在不同应用间传递、分享数据的机制,这些数据可以存储在文件系统、SQLite数据库等中。

当要使用content provider访问数据时,我们需要在应用程序的Context中使用ContentResolver对象作为客户端,同provider进行通信。与provier对象通信的ContentResolver对象是ContentProvider类的一个实例。provider对象接收从客户端发来的数据,执行请求的动作并返回结果。

1)定义AppWidgetProviderInfo对象

如果你不打算同其他应用程序共享数据,就没必要实现provider。但是,如果希望在自己的应用程序中搜索建议的功能,就需要实现自己的provider。同样的,如果希望在自己的应用程序和其他的应用程序间拷贝粘贴复杂的数据或文件,也需要实现自己的provider。

自定义的内容提供器必须扩展自android.content.ContentProvider基类。

如果期望应用将拥有的数据变为公共数据,开发者可以通过自定义应用自己的内容提供器,或者将数据添加到已有的内容提供器中的方式来进行。下面是一个内容提供器的定义:

< provider
        android:name=".provider.EmailProvider"
        android:authorities="com.android.email.provider"
        android:multiprocess="true"
        android:permission="com.android.email.permission.ACCESS_PROVIDER"
    />

Android系统本身也通过content providers来管理数据,如音频,视频,图像,个人联系信息等。我们可以在android.provider包的参考文档中看到这些providers列表。在一定条件下,这些providers能够访问任何Android应用程序。

 更多相关文章

·Android App Widgets开发
·Android Intent激活组件
·Android Broadcast的使用
·详解Android Service组件
·Android应用组件Activity