正确设置ContentObserver

时间:2014-07-03 19:36:42

标签: android android-activity android-contentprovider android-contacts

我对我今天设置的ContentObserver有疑问。像Android中的大多数东西一样,它们设置起来似乎很简单,但总有一些问题或“不要那样做”。我在ContentObserver中发现的唯一问题是我使用的是不推荐使用的URI,但我很快/很容易地改变了它。

这是我的ContactObserver类:

public class ContactObserver extends ContentObserver {

    public ContactChangeObserver() {
        //Is passing in a null here fine? I'm afraid something might break, even though it hasn't in my tests.
        super(null);
        Log.e(getClass().getSimpleName(), "constructor");
    }

    public void onChange(boolean selfChange) {
        //Is this super necessary?
        super.onChange(selfChange);
        Log.e(getClass().getSimpleName(), "changed");
    }

}

在我的onCreate of my Activity中,我有这个:

this.getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, new ContactObserver());

同样,这一切似乎都有效。我通过阅读日志来测试它。

  1. 我的Log.e给了我“构造函数”的输出 ContactObserver。
  2. 第二:我去了google.com/contacts并添加了一个联系人。花了 大约30秒,但是然后我在onChange方法中的Log.e得到了 在3/10秒内解雇了两次。我只添加了一个联系人, 但我不确定为什么它会被叫两次。这让我有点兴奋 担心,因为我只希望我的代码被触发一次。感谢任何 提示,或者如果任何人可以提供任何边缘情况 可能会出错。

0 个答案:

没有答案