अपने आवेदन android.provider.ContactsContract.Data
(एपीआई> 11) और ContactsContract.Contacts.CONTENT_URI
(एपीआई < 11) से सामग्री का उपयोग करता है के रूप में Contacts
को भरने के लिए।ContentObserver बुलाना चाहिए यदि और केवल यदि ContactsContract.Contacts.CONTENT_URI बदलता है
मैंने इन प्रदाताओं के विरुद्ध registerContentObserver()
करने का प्रयास किया है। लेकिन यह मेरे ContentObserver
को कॉल करता है भले ही मैं कॉल करने के बाद डिवाइस से किसी व्यक्ति को कॉल करने का प्रयास करता हूं। यह मेरे ContentObserver
को ट्रिगर करता है जो मेरे लिए उपयोगी नहीं है क्योंकि Contacts Provider
में कोई सामग्री परिवर्तन नहीं है।
मूल कारण:
LAST_TIME_CONTACTED
या ContactsContract.Contacts.CONTENT_URI
में परिवर्तन करते कुछ की तरह लगता है जब एक कॉल ContentObserver
द्वारा जो वैध wokes डिवाइस से किया गया है।
की कोशिश की:
private class ContactsContentObserver extends ContentObserver {
public ContactsContentObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Zname.getPreferences().setRefreshContact(true);
}
}
Activity
ContactsContentObserver contactsContentObserver = new ContactsContentObserver();
getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, false, contactsContentObserver);
false
registerContentObserver
पर के रूप में notifyForDescendents
साथ की कोशिश की की OnCreate()
में ContentObserver
पंजीकृत। फिर भी यह ContentObserver
प्रश्न बाहर चलाता है:
कैसे एक रजिस्टर कर सकते हैं ContentObserver
जो से चलाता है, तो और संपर्क जानकारी CRUD (बनाएं, अपडेट करें हटाएँ) के तहत केवल तभी Last_Time_Contacted
या उसके वंश को छोड़कर?