即使没有更改联系人,也会调用内容观察者
Posted
技术标签:
【中文标题】即使没有更改联系人,也会调用内容观察者【英文标题】:Content observer is being called even if the Contacts are not changed 【发布时间】:2012-05-29 21:32:11 【问题描述】:我遇到了一个奇怪的问题,我正在使用ContentObserver
来捕获联系人中的更改,但问题是即使我没有进行任何更改,也会调用onchange()
方法。这是我的代码:
getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, new MyCOntentObserver());
public class MyCOntentObserver extends ContentObserver
public MyCOntentObserver()
super(null);
@Override
public void onChange(boolean selfChange)
super.onChange(selfChange);
Log.e("","~~~~~~"+selfChange);
@Override
public boolean deliverSelfNotifications()
Log.e("","~~~~~~ Change");
return true;
有人可以帮忙吗? 提前致谢
【问题讨论】:
那么它什么时候被调用? 它随时被调用,我没有使用任何被调用的设备,当设备与gmail帐户同步时也会调用它 @Josephus Villarey @AnasBakez 将您的URI
更改为 ContactsContract.Contacts.CONTENT_VCARD_URI 并将 notifyForDescendents
设置为 false
ContactsContract.Contacts.CONTENT_VCARD_URI 并将 notifyForDescendents 设置为 false 并不能解决问题。我知道这个问题很老了,但还有其他解决方法吗?
【参考方案1】:
registerContentObserver
方法接受布尔值 notifyForDescendents
变量,您将其设置为 true。也许将其设置为 false?
否则,某些后台任务可能会干扰您的观察者。 :)
【讨论】:
检查 notifyForDescendents 文档 developer.android.com/reference/android/content/…, boolean, android.database.ContentObserver) 我怎么知道是什么调用了 OnChange 方法?以上是关于即使没有更改联系人,也会调用内容观察者的主要内容,如果未能解决你的问题,请参考以下文章
Swift Firebase观察.childAdded对现有项目而不是新项目的反应
Android:内容观察者的“onChange()”方法被多次调用