Witam Pracuję nad aplikacją na Androida, która musi wiedzieć, kiedy kontakt zostanie dodany/zaktualizowany/usunięty.Zrozumienie architektury kontaktów Androida
Dlatego przeczytałem kilka postów na ten temat. Tak więc informacje, które zebrałem, to:
Możemy otrzymywać powiadomienia za pośrednictwem obserwatorów treści za każdym razem, gdy kontakty się zmieniają. Ale nie możemy uzyskać informacji, które kontakty zostały dodane/zaktualizowane/usunięte. Więc przeczytałem oficjalną apis i przygotowałem projekt, jak uchwycić ten konkretny kontakt.
Więc co ja thinked na początku
- Będziemy przechowywać wszystkie identyfikatory kontaktowe, usunięte flagę i wersję
- Ilekroć kontakty przebrać dostanę mojego stolika Policzmy rząd i rząd liczyć z systemem Android.
- Jeśli mój rząd wierszy jest mniejszy niż liczba wierszy systemu, to kontakt został usunięty.
- Jeśli mój rząd wierszy jest większy niż liczba wierszy systemu, to dodany został kontakt.
- A jeśli nie są to przypadki, to jedna z wersji kontaktów została zmieniona.
Potem dowiedziałem się, że Android nie usuwa kontaktu, jeśli został usunięty przez użytkownika, ale ustawia 0 na usuniętej flagi. W takich przypadkach liczba wierszy będzie taka sama.
Android wielokrotnie zmienia identyfikator wiersza kontaktu zgodnie z oficjalnymi dokumentami. W jaki więc sposób możemy je jednoznacznie identyfikować, tak jak szukają uri, a jeśli nie, to musimy również postawić na to obserwatora.
Po prostu chcę wiedzieć, co uważałem za poprawne, czy nie. A w przypadku, gdy kontakt zostanie dodany, zostanie dodany do ostatniego wiersza kursora, lub nie oznacza, że jeśli sprawdzę ostatni wiersz bazy danych systemu dla kontaktów, otrzymam kontakt dodany lub nie.
Proszę, pomóżcie mi zrozumieć architekturę kontaktów Androida.
Brzmi jak duplikat [how-to-listen-for-changes-in-contact-database] (http://stackoverflow.com/questions/1401280/how-to-listen-for-changes-in- contact-database) – paulsm4
@ paulsm4 Drogi Panie, moje pytanie jest podejściem do kontynuowania moich badań w celu zrozumienia modelu zarządzania kontaktami androidów. Nie ma żadnego związku z żadnym innym pytaniem. –
@leonfloy dzięki za poprawienie mojego tytułu. –