ContentProvider

ContentProvider


public boolean onCreate():该方法在ContentProvider首次创建出来时会被调用,当其他应用程序
  第一次访问ContentProvider时,该ContentProvider会被创建出来,
  并立即执行onCreate()方法。
public Uri insert(Uri uri,ContentValues values): 根据该Uri插入values对应的数据


public Uri delete(Uri uri,....)


public Uri update(Uri uri,....)


pubic Cursor query(Uri uri,...)


//content:org.creazy.providers.dictprovider/words


content://            这一部分是固定的,就是访问网站的时候需要加上http://一样
org.creazy.providers.dictprovider     这一部分是包名,就是所要访问的应用程序对应的包名,唯一的。
words              资源部分,访问者需要不同的资源的时候,这一部分是动态改变的


利用parse()方法可以将一个字符串转化为Uri.
例如:Uri uri = Uri.parse("content:org.creazy.providers.dictprovider/word/2");


ContentProvider 的生命周期:不像Activity那么复杂,当其他应用通过ContentResolver访问ContentProvider时onCreate()将会被回调,并且只会被回调一次,ContentProvider提供的query()、insert()、update()和delete()方法则由其他应用通过ContentProvider调用


所有利用ContentResolver来修改其他应用程序的实现都是通过其他应用程序ContentProvider提供的方法来实现的。


配置ContentProvider


<!-- 注册一个ContentProvider -->
<provider android:name=".DictProvider"            //该ContentProvider实现的类名
android:authorities="org.crazyit.providers.dictprovider"    //指定ContentProvider对应的Uri
android:exported="true"/>                         //是否可以被其他应用访问

对传入的uri需要进行判断,Android提供了Uri.Matcher工具类,
UriMatcher工具类主要提供了一下两个方法,voidaddURI(Stirng authority,String path,int code):该方法
用于向UriMatcher对象注册Uri,其中authority和path组合成一个Uri,而code则代表该Uri对应的标志码

int matcher(Uri uri)根据前面注册的Uri对应的标志码,如果找不到匹配的标志码,该方法会返回-1


安卓提供了ContentProvider来让其他应用程序可以访问手机里面用Camera的视频照片,使用ContentProvider对应的Uri就可以管理多媒体内容,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值