内容观察者简单使用

字数 36阅读 239

0. 定义内容监听者子类

class MyContentObserver extends ContentObserver {

    /**
     * Creates a content observer.
     *
     * @param handler The handler to run {@link #onChange} on, or null if none.
     */
    public MyContentObserver(Handler handler) {
        super(handler);
    }

    @Override
    public void onChange(boolean selfChange) {
        // 数据变化重新加载
        mAllLockedApps = mDao.getAllLockedApps();

        super.onChange(selfChange);
    }
}

1. 注册内容监听者.

// 1. 创建内容监听者
mContentObserver = new MyContentObserver(new Handler());
// 2. 注册内容监听者 , true 表示模糊匹配
ctx.getContentResolver().registerContentObserver(Uri.parse("content://applock/change"),true, mContentObserver);

2. 发送数据变化通知

// 通知数据发生变化, 下面是URL
mContext.getContentResolver().notifyChange(Uri.parse("content://applock/change"),null);

3. 使用后要注销监听

// 解除内容监听
if (mContentObserver != null) {
    ctx.getContentResolver().unregisterContentObserver(mContentObserver);
}

推荐阅读更多精彩内容