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就可以管理多媒体内容,
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就可以管理多媒体内容,