详解 Android content provider
2010-03-15 15:35:00 来源:WEB开发网ContentResolver会请求记录的"_data"字段。由于ContentResolver比起客户端来说有更高的权限,所以 ContentResolver 可以直接访问文件,向客户端返回一个read wrapper。 content provider实现的例子,参考随同SDK一同发布的Notepad 示例应用程序中NodePadProvider 类。声明content provider 为了让Android系统知道我们开发的content provider,需要在应用程序的AndroidManifest.xml文件中声明一个元素。没有在mainfest中声明的Content providers对Android系统来说是不可见的。 Name属性是能够完全确定ContentProvider子类的属性;authorities属性是标识provider的content: URI的权限部分。例如,ContentProvider的子类AutoInfoProvider的元素定义如下: 注意:authorities属性忽略了content: URI的路径部分。例如,如果AutoInfoProvider为不同类型的汽车或制造商管理不同的子表 content://com.example.autos.autoinfoprovider/honda content://com.example.autos.autoinfoprovider/gm/compact content://com.example.autos.autoinfoprovider/gm/suv 这些路径不要在manifest中声明,authority是标识provider的,provider能够解释所选择的URI的路径部分。
其它属性可以设置读写数据的权限,提供可以显示给用户的图标或文本,使provider有效或无效等等。如果在content provider多个运行版本之间不需要数据的同步,把multiprocess属性设置为“true”,这允许在每个客户进程中创建provider实例,消除执行IPC的需求。 Content URI 总结下面重温一下content URI的重要部分: content://com.example.transportationprovider/trains/122 v:*
赞助商链接