2012-06-04 11 views
6

Próbuję dowiedzieć się, czy potrzebuję użyć adaptera synchronizacji w mojej aplikacji na Androida.Kiedy/nie należy używać adaptera synchronizacji

proceduralne podejście Przykład:

  1. (z zasięgiem sieci) Zmiany wprowadzone przez użytkownika będą automatycznie przesyłane do serwera.
  2. (BEZ zasięgu sieci) Zmiany zostaną zapisane w tabeli sqlite i poczekać, aż transmisja internetowa prześle zmiany.
  3. Zmiany wysłane na serwer zostaną zapisane w lustrzanym odbiorze tabeli sqlite w pewnym stopniu na serwerze.
  4. Zmiany na serwerze będą używać struktury C2DM do powiadamiania użytkowników o zmianach.
  5. Gdy aplikacja otrzyma powiadomienie, pobierze niezbędne dane z serwera i zaktualizuje tabele sqlite.

Pytanie brzmi, czy należy używać adaptera synchronizacji do tej pracy? Jeśli tak, to jakie byłoby podejście wysokiego poziomu oparte na moim przykładzie powyżej. Dziękuję Ci.

Odpowiedz

2

Z jakiej aplikacji serwerowej chcesz się zsynchronizować? Jeśli twoja aplikacja chce zsynchronizować dane użytkownika z serwerem, może to być metoda C2DM (przy użyciu adaptera synchronizacji). Zapewnia to koszty ogólne. Uważam, że w większości przypadków prosty i spokojny interfejs jest łatwiejszy do stworzenia i utrzymania.

Jeśli chcesz uzyskać bardziej szczegółową odpowiedź, musisz podać więcej informacji o swojej aplikacji.

+0

Dzięki za odpowiedź. Szukałem implementacji serwera PHP, która będzie zarządzać żądaniami HTTP. Spokojne podejście, tak jak to opisałeś, było tak naprawdę, jak chciałem. Światło narzutowe jest kluczowe. – HGPB

+0

Kiedy myślę o synchronizacji, myślę o dwukierunkowym przepływie danych z każdą synchronizacją. Moja aplikacja tak naprawdę nie wymaga takiej funkcjonalności, jak widzisz na moim przykładzie. – HGPB

1

Jeśli nie obchodzi Cię wyczerpywanie się baterii, użyj SyncAdapter, aby wykonywać okresową synchronizację dwukierunkową (w dół i w górę) i zmodyfikuj tylko lokalną bazę danych, aby współdziałać z działaniami użytkownika. W ten sposób potrzebujesz tylko dwóch skryptów po stronie serwera, jeden do późniejszej synchronizacji, a drugi do dalszej synchronizacji.

Oczywiście musisz mieć

1). 3 flagi, tj. Stan_wyjściowy, stan_aktualizacji i stan_końcowy dla lokalnej bazy danych, w celu wskazania brudnych danych.

2). UUID zarówno dla lokalnego i zdalnego db

GoogleIO spokojny synchronizowania referencyjnego: http://www.youtube.com/watch?v=xHXn3Kg2IQE

Powiązane problemy