2011-10-26 3 views
15

Jestem zdezorientowany, w jaki sposób najlepiej jest zsynchronizować wiele tabel w mojej aplikacji.Mylić o synchronizowaniu wielu tabel z adapterem synchronizacji i dostawcą zawartości

Mam jednego dostawcę treści i zamierzam mieć wiele tabel (zdarzeń, użytkowników itp.). Mam też serwer odpoczynku, z którym aplikacja ma się komunikować. Zastanawiam się, jaka jest najlepsza praktyka do obsługi wielu połączeń (dodawanie, pobieranie, publikowanie i usuwanie) dla każdej z tabel. Mają także relacje, tak jak jeden użytkownik może uczestniczyć w wydarzeniu, ale także być właścicielem wydarzenia. Więc jeśli utworzyłem użytkownika i przynależne wydarzenie temu użytkownikowi, mogę albo załadować użytkownika, odzyskać informacje z serwera o użytkowniku, przesłać zdarzenie z informacją o użytkowniku, odzyskać te informacje, a następnie zaktualizować użytkownik z nowymi informacjami o zdarzeniu.

Jaki jest najlepszy sposób rozwiązania tych problemów? Czy powinienem utworzyć metodę (http://example.com/sync), która agreguje wszystkie dane, które powinny być zsynchronizowane? Czy powinienem po prostu trzymać się, czasami ~ 15-20 wniosków?

+0

[To może być pomocne] (http://stackoverflow.com/questions/3814005/best-practices-for-exposing-multiple-tables-using-content-providers-in-android) – Reno

+0

To nie odpowiada dokładnie na moje pytanie. Link, który udostępniłeś (dziękuje), dotyczy ujawnienia dostawcy treści tp pozostałej części systemu Android, wewnętrznie. Moje pytanie dotyczy raczej zsynchronizowania danych z zewnątrz i sposobu, w jaki można uzyskać najbardziej wydajne połączenie z serwerem w celu przesyłania/odbierania danych. – jonepatr

+0

Tak, wiem, przepraszam, że w ogóle nie pracowałem z SyncAdapters, przekażę twoje pytanie. – Reno

Odpowiedz

6

Polecam do oglądania wideo Google I/O 2010 - Android REST client applications. To fantastyczne wprowadzenie do niektórych koncepcji i zalecanych wzorców do pisania oraz projektowania aplikacji do synchronizacji.

Osobiście znalazłem odpowiedzi na większość moich pytań.

Zobacz także this presentation. Oprócz tej prezentacji i próbki adaptera synchronizacji dostarczonej z zestawem SDK, poniższa lista powinna dostarczyć wystarczającej ilości amunicji, aby adapter synchronizacji działał dość szybko.

2

Wszystko zależy od ilości danych, które chcesz zsynchronizować.

Jeśli są to tylko dane tekstowe, a nie dużo, należy zsynchronizować je wszystkie naraz. Poleciłbym kodowanie wszystkiego do json, skompresowanie i wysłanie go na serwer (gdzie rozpakowywałbyś, parsowałeś i zapisywałeś). Json jest lekki i łatwy do skomponowania na androi, a także parsowany na prawie każdym serwerze.

Jeśli chcesz zsynchronizować obrazy, lepiej je zsynchronizować pojedynczo, aby mieć pewność, że częściowy postęp zostanie zapisany na wypadek, gdyby połączenie spadło.

7

Evernote rozwiązał podobny problem ze swoim zastrzeżonym protokołem EDAM. Warto się przyjrzeć.

Evernote EDAM

Powiązane problemy