Khi ứng dụng của tôi sử dụng nội dung từ android.provider.ContactsContract.Data
(API> 11) và ContactsContract.Contacts.CONTENT_URI
(API < 11) để điền Contacts
.ContentObserver nên gọi nếu và chỉ khi ContactsContract.Contacts.CONTENT_URI thay đổi
Tôi đã cố gắng registerContentObserver()
đối với những nhà cung cấp này. Nhưng nó gọi số ContentObserver
của tôi ngay cả khi tôi cố Gọi cho một người từ thiết bị ngay khi tôi gọi điện. Nó kích hoạt ContentObserver
của tôi không hữu ích cho tôi vì không có thay đổi nội dung trong Contacts Provider
.
gốc Nguyên nhân:
Có vẻ như LAST_TIME_CONTACTED
hoặc một cái gì đó trong ContactsContract.Contacts.CONTENT_URI
làm thay đổi khi một cuộc gọi đã được thực hiện từ thiết bị mà wokes hợp pháp tăng ContentObserver
.
Cố gắng:
private class ContactsContentObserver extends ContentObserver {
public ContactsContentObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Zname.getPreferences().setRefreshContact(true);
}
}
đăng ký ContentObserver
trong OnCreate()
của Activity
ContactsContentObserver contactsContentObserver = new ContactsContentObserver();
getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, false, contactsContentObserver);
Cố gắng với notifyForDescendents
như false
trên registerContentObserver
. Tuy nhiên nó gây ra ContentObserver
Ques:
Làm thế nào người ta có thể đăng ký ContentObserver
mà gây nên khi và chỉ khi liên lạc thông tin đang được CRUD (Create, Update, Delete) trừ Last_Time_Contacted
hoặc hậu duệ của nó?