<!--
provider需要注册
名称
android:authorities填写类的全限定名称即可
读写权限可以设定,也可不设定
-->
<provider android:name=".mycontentprovider.MyProvider"
android:exported="true"
android:authorities="com.leige.stu.mycontentprovider.MyProvider"
android:readPermission="myprovider.read"
android:writePermission="myprovider.write"
>
<!--
自定义权限需要声明,才会被系统所认可,所以需要定义permission节点,声明自定义权限
android:readPermission="myprovider.read"
android:writePermission="myprovider.write" -->
</provider>
内容观察者和内容提供者是相辅相成的,但是你在创建内容提供者的时候一定要,注意清单文件的配置问题
<span style="font-size:24px;"> <span style="color:#ff0000;"> android:exported="true"</span></span>
注意这个属性,才能被外部访问
在你需要的地方注册监听就可以了
this.getContentResolver().registerContentObserver(
Uri.parse("content://com.leige.stu.mycontentprovider.MyProvider/"),
true,
new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
// TODO Auto-generated method stub
System.out.println("改鬓");
}
});
注册
完毕后,在需要观察的方法中,当方法发生改变时,调用notifyonchange方法就好
getContext().getContentResolver().notifyChange(
Uri.parse("content://com.leige.stu.mycontentprovider.MyProvider/"),
null);