Próbuję wdrożyć aplikację, aby korzystać z usługi internetowej RESTful. Przeanalizowałem kilka różnych przykładów i zakodowałem dobrą, działającą aplikację, która skutecznie odciąga się od usługi REST. Ale teraz potrzebuję jakiegoś kierunku. Oto podstawowe tło (bardzo uproszczone) ...Android i usługa RESTful
- Załóż podstawową usługę REST, która ma metody "GetReferrers" i "AddReferrer".
- Od
Activity
nazywammanagedQuery
, aby uzyskaćCursor
z powrotem z dla mojegoListView
. - The
ContentProvider
zwraca z powrotem wszelkie dane lokalne i wywołuje asynchroniczne "GetReferrers", aby uzyskać najnowszą listę serwerów odsyłających. - Mam niestandardowy
ResponseHandler
do parsowania JSON i wstawić go doContentProvider
. - Na razie usuwam wszystkie rekordy w lokalnym
ContentProvider
po pomyślnym "pobraniu" z serwera, a następnie wstawieniu nowej/zaktualizowanej listy do bazy danych.
dwa pytania, jakie są ...
Kiedy zrobić nową GET, byłoby to powszechną praktyką, aby usunąć wszystkie istniejące rekordy w lokalnej
ContentProvider
i wstawić nową listę? A może lepiej (aczkolwiek bardziej czasochłonnie) sprawdzać nowe/zmienione/usunięte rekordy, aby tylko odpowiednio dodawać/zmieniać/usuwać?Naprawdę nie mam pojęcia, od czego zacząć od "dodania" od klienta, aby wykorzystać metodę REST "AddReferrer". Wiem, jak dodać nowy element lokalnie do
ContentProvider
przy użyciuContentValues
zgetContentResolver().insert()
. Ale gdzie powinienem umieścić kod, żeby przekazać to na serwer? A może częstszą praktyką byłoby pomijanie dodawania do lokalnego urządzenia lokacyjnegoContentProvider
, wypychanie go na serwer, a następnie pozwolić GET odciągnąć go z powrotem na lokalny numerContentProvider
?
Mam nadzieję, że wszystko ma sens. Byłbym wdzięczny za każdy kierunek, jaki możesz dać. Jeśli ktoś wie o dobrym dwukierunkowym przykładzie, proszę podziel się. Wszystkie przykłady operacji klienta REST, które do tej pory znalazłem, po prostu wykonują "pobieranie" z serwera i nie wypisują kopii zapasowej.
dla # 2, najpierw przesłać dane do usługi REST, a po pomyślnej odpowiedzi wstawić lokalnie. – binnyb
Myślę, że to jest to, na co się skłaniam w związku z # 2. – robertmiles3
@ robertmiles3 Mam nadzieję, że udało ci się to przejść. Może możesz mi pomóc w tym [podobnym setupie] (http://stackoverflow.com/questions/11906172/synchronize-android-client-and-rest-server). – JJD