在单个ContentObserver中注册多个内容URI

时间:2014-03-29 10:35:57

标签: android

我正在跟踪浏览器链接。所以,我正在使用我在ContentObserver注册的ContentObserver

所以我必须在一个ContentObserver中注册多个URI。

在单个ContentObserver中注册多个URI是个好主意还是会出现任何问题如果我喜欢这个?

BlockURL.java

public class BlockURLObserver extends ContentObserver {
    private Context context;
    public BlockURLObserver(Context con) {
        super(null);
        context = con;
        context.getContentResolver().registerContentObserver(Uri.parse("content://com.android.chrome.browser/bookmarks"), true, this);
        context.getContentResolver().registerContentObserver(Browser.BOOKMARKS_URI, true, this);
    }
    ...
}

1 个答案:

答案 0 :(得分:2)

我认为,更好地创建单个内容观察者来监听多个URI。而是创建多个观察者..

这里有一个共同的解释。

可以在单个contentobserver中注册多个URI。 同时,使用URI可以区分onChange()中的代码。

    @Override
    public void onChange(boolean selfChange, Uri uri) {
        super.onChange(selfChange);
    }

这个onChange(boolean selfChange,Uri uri)从API 16开始执行。这样您就可以在单个内容观察器中注册多个URI。

    @Override
    public void onChange(boolean selfChange, Uri uri) {
        super.onChange(selfChange);
        if(uri.toString.equalsgetUrifor((BOOKMARKS_URI))) {
            //do your stuff
        }
        if(uri.toString.equals(getUrifor(SOMETHING_ELSE))) {
            //...
        }
    }
相关问题