11

Tworzę słownikowy rodzaj aplikacji, która używa SQLite. Mam jedną tabelę, która przechowuje parę obcych słów i ich tłumaczenia. Chcę zsynchronizować tę tabelę z konkretnym arkuszem kalkulacyjnym w dokumencie Google Docs.Android Sync Sqlite

Znalazłem ten awesome library, aby pobrać i manipulować GoogleSpreadsheets, więc przynajmniej jestem objęte tym. Ale nie czuję się dobrze z synchronizacją. Teraz

  1. mogę użyć SyncAdapter to zrobić synchronizację między moim SQLite i GoogleSpreadsheet? Jeśli tak, to jak bym to zrobił? Czy pobierałbym i manipulował wierszami arkusza kalkulacyjnego w pliku onPerformSync lub czymś podobnym?
  2. Jakie mogą być inne alternatywy dla takiego scenariusza? Czy powinienem użyć zwykłej usługi do sprawdzenia, gdy użytkownik tego zażąda (na przykład w głównej działalności)?

Na vids Google I/O (szczególnie na Android REST client apps) wydaje się całkiem przekonujące za pomocą SyncAdapter ale nie jestem pewien, czy to może mi pomóc bez rzeczywistej usługi REST.

góry dzięki ..

+1

Zobacz to pytanie. Ma odpowiedź na twój problem. http://stackoverflow.com/questions/6314977/how-can-i-sync-my-android-sqlite-database-witha-a-database-on-a-server-using-json –

Odpowiedz

1

Jeden dobry powód, aby korzystać z Android SyncAdapter, ContentProvider i SyncManager jest to, że będziesz korzystać z wiedzy systemu Google, która jest przydatna dla zachowania żywotności baterii i innych zasobów. Niektóre z tych treści znajdują się w filmie, do którego prowadzi link. Na przykład wykładnicza logika wycofania, aby zapobiec nieudanym próbom synchronizacji.

Istnieje kilka dobrych informacji na temat zachowania żywotności baterii, oszczędzając moc radia komórkowego w dzisiejszym numerze Google I/O 2012 talk "Making Good Apps Great: More Advanced Topics for Expert Android Developers.". Chociaż nie jest to wyraźnie powiedziane, myślę, że SyncManager ma prawdopodobnie właściwości oszczędzania baterii wymienione w tym filmie wideo.

Na podstawie mojego odczytu (w rzeczywistości nie implementującego niczego) interfejsów API i innych zasobów, takich jak pakiet com.example.android.samplesync, wydaje się, że wzorzec jest wystarczająco elastyczny, aby dostosować się do potrzeb programu.

Zespół, nad którym pracuję, zaimplementował niestandardową synchronizację dla naszej aplikacji na Androida, ale mogę powiedzieć, że nie rozważaliśmy tej opcji, ponieważ staraliśmy się napisać jak najwięcej logiki, aby można było uruchomić z WebView. Nie zaleciłbym tego, ale nie jest to możliwe.