<provider>元素

就像ActivityService组件,ContentProvider的子类必须在应用的manifest文件中进行定义。使用<provider>元素。Android系统从元素中获取以下信息:

Authority ( android:authorities )
在系统中标志整个 provider的代号。此属性在 设计 ContentURI 一节中有更详细的描述。
Provider 类名 ( android:name )
实现了 ContentProvider 的类。此类在实现 ContentProvider一节中有更多描述。
权限
此属性指定了其它应用想要操作provider的数据所需的权限:
  • android:grantUriPermssions :临时权限标记。
  • android:permission :指定整个 provider read/write权限。
  • android:readPermission :指定整个 Provider的读权限。
  • android:writePermission :指定整个 Provider的写权限。
启动和控制权限
这些属性决定了android系统如何以及何时启动providerprovider的处理属性,以及其它运行时设置:
  • android:enabled :允许系统启动 provider的标志。 .
  • android:exported :允许其它应用使用此 provider
  • android:initOrder : provider相对于同进程中的其它 provider的启动顺序。
  • android:multiProcess :允许系统在调用客户端所在的进程中启动 provider的标记。
  • android:process :provider应该在其中运行的进程的名字。
  • android:syncable :Flag indicating that the provider's data is to be sync'ed with dataon a server.
全部的属性在 <provider> 元素的开发指南中有详细讲解。
信息类的属性
一个可选的图标和一个label
  • android:icon :一个包含图标的 drawable资源。在 Settings > Apps > All 所显示的应用列表中显示,位于 provider的旁边。
  • android:label :一个描述 provider或它的数据信息的 label。出现在 Settings > Apps > All 所显示的应用列表中。

Intents和数据操作

应用可以通过Intent直接操作contentprovider。应用不调用ContentResolverContentProvider任何方法,而是发送一个intent启动一个activity,这个activity一般是provider所在应用的一部分,它负责取得数据并显示在自己的UI上。跟据intent中的action的不同,目标activity可能会提示用户对provider的数据作出修改。intent可能还包含显示在界面上的额外的数据;于是用户可选择在使用这些数据修改provider的数据之前改变这些数据。

你可能想使用intent方式来帮助保证数据的完整性。你的provider可能跟据所严格定义的商业逻辑来决定是否具有数据插入、更新、删除等操作。如果是这样,允许其它应用直接修改你的数据可能导致非法的数据出现。如果你想让开发者使用intent方式,需保证你的文档中对它有完整的说明。向他们解释为什么使用intent方式通过你的自己的应用UI来操作好于使用他们的代码。

处理要修改你的provider的数据的intent与处理其它intent没有什么区别。你可以从Intentsand Intent Filters学到更多信息。


更多相关文章

  1. Android 使用地图时的权限请求
  2. Android性能优化-数据优化
  3. Android通过http协议数据交互的两种方式
  4. Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、
  5. Android 通过Post方式提交数据
  6. android检查权限是否获取
  7. android将对象写入文件和从文件中读取对象数据
  8. android 向SD卡写入数据

随机推荐

  1. 论文翻译——DREBIN : Effective and Exp
  2. 检测Android中触摸屏手势的动作与坐标
  3. 使用Handler实现定时器
  4. 你需要知道的Android上下文Context
  5. Android Gradle构建学习(二):构建定制
  6. Android应用程序键盘(Keyboard)消息处理机
  7. Error occurred during initialization o
  8. 【Android】利用intent拨打电话
  9. android中相关的图形类
  10. Android之Handler详解(三)