Android应用:ContentResolver内容观察者的使用

来源:互联网 发布:淘宝白夜追凶视频电话 编辑:程序博客网 时间:2024/04/30 08:05

ContentObserver的使用类似与设计模式中的观察者模式,ContentObserver是观察者,被观察的ContentProvider是被观察者。当被观察者ContentProvider的数据发生了增删改的变化,就会及时的通知给ContentProvider,ContentObsserver做出相应的处理。


构造方法 

public void ContentObserver(Handler handler) 

说明:所有 ContentObserver的派生类都需要调用该构造方法      

参数: handler  Handler对象。可以是主线程Handler(这时候可以更新UI 了),也可以是任何Handler对象。 


常用方法 

void onChange(boolean selfChange) 

功能:当观察到的Uri发生变化时,回调该方法去处理。所有ContentObserver的派生类都需要重载该方法去处理逻辑。 

参数:selfChange 回调后,其值一般为false,该参数意义不大(我也不懂,理解方法最重要)。


实例代码


1. 构造观察者

private ContenObserver mObserver = new ContenObserver(new Handler()){    @override    public void onChange(boolean self selfChange)    {        //添加处理    }}


2. 注册观察者

<pre name="code" class="java" style="font-size: 13.63636302947998px; line-height: 25.99431800842285px;">this.getContentResolver().registerContentObserver(
<span style="white-space:pre"></span>Settings.Secure.getUriFor(Settings.Secure.LOCATION_PERMISSION),<span style="white-space:pre"></span>true, mObserver);


3. 释放观察者

this.getContentResolver().unregisterContentObserver(mObserver);


4.导入包

import android.database.ContentObserver;imoprt android.os.Handler


0 0
原创粉丝点击