Spróbuję odpowiedzieć na wszystkie pytania, odpowiadając na większe pytanie: Jak mogę zsynchronizować dane między serwerem internetowym a aplikacją na Androida?
Synchronizacja danych między serwerem internetowym a aplikacją na Androida wymaga kilku różnych składników na urządzeniu z Androidem.
Pamięć trwała:
W ten sposób telefon faktycznie przechowuje dane otrzymane z serwera. Jedną z możliwych metod osiągnięcia tego jest napisanie własnego niestandardowego ContentProvider wspieranego przez bazę danych Sqlite. Przyzwoity samouczek dla dostawcy treści można znaleźć tutaj: http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
ContentProvider definiuje spójny interfejs do interakcji z przechowywanych danych. Może także pozwolić innym aplikacjom na interakcję z twoimi danymi, jeśli chcesz. Za twoim ContentProvider może znajdować się baza danych Sqlite, pamięć podręczna lub dowolny dowolny mechanizm przechowywania.
Chociaż z pewnością poleciłbym użycie ContentProvider z bazą danych Sqlite, możesz użyć dowolnego mechanizmu pamięci opartego na Javie.
Format wymiany danych:
Jest to format używany do przesyłania danych między serwerem internetowym a aplikacją na Androida. Obecnie dwa najpopularniejsze formaty to XML i JSON. Wybierając format, powinieneś pomyśleć o tym, jakie biblioteki bibliotek serializacji są dostępne. Wiem od razu , że istnieje fantastyczna biblioteka serializacji json o nazwie gson: https://github.com/google/gson , chociaż jestem pewien, że istnieją podobne biblioteki dla XML.
Usługa synchronizacji
Będziesz potrzebować jakiegoś asynchronicznego zadania, które może pobrać nowe dane z serwera i odświeżyć zawartość mobilną, aby odzwierciedlić zawartość serwera. Będziesz także chciał powiadamiać serwer za każdym razem, gdy wprowadzasz lokalne zmiany w treści i chcesz odzwierciedlić te zmiany. Android zapewnia wzorzec SyncAdapter jako sposób na łatwe rozwiązanie tego wzorca. Musisz zarejestrować konta użytkowników, a wtedy Android wykona dla ciebie wiele magii i pozwoli ci na automatyczną synchronizację. Oto dobry samouczek: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/
Jeśli chodzi o sposób identyfikacji, czy rekordy są takie same, zazwyczaj tworzysz przedmioty o unikalnym identyfikatorze, które przechowujesz zarówno na urządzeniu z Androidem, jak i na serwerze. Możesz użyć tego, aby upewnić się, że odwołujesz się do tego samego odwołania. Co więcej, możesz przechowywać atrybuty kolumn, takie jak „updated_at”, aby mieć pewność, że zawsze otrzymujesz najświeższe dane lub nie przypadkowo zapisujesz nowo zapisane dane.