Android Sync Sqlite

Я делаю словарь типа приложения, которое использует SQLite. У меня есть одна таблица, в которой хранятся пара иностранных слов и их переводы. Я хочу синхронизировать эту таблицу с определенной таблицей в Документах Google.

Я нашел эту удивительную библиотеку для извлечения и управления GoogleSpreadsheets, поэтому, по крайней мере, для этого я охвачен. Но я не чувствую себя комфортно в синхронизации. Теперь,

  • Можно ли использовать SyncAdapter для этой синхронизации между моими SQLite и a GoogleSpreadsheet? Если да, как бы я это сделал? Будет ли я получать и управлять строками таблицы в onPerformSync или smth?
  • Какими могут быть другие альтернативы для такого сценария? Должен ли я использовать обычный сервис для проверки, когда пользователь запрашивает его (например, в основном действии)?

В файлах ввода/вывода Google (особенно в приложениях Android REST), они кажутся довольно убедительными для использования SyncAdapter, но я не уверен, может ли он помочь мне без реальной службы REST.

Спасибо заранее.

Ответ 1

Одной из веских причин использовать Android SyncAdapter, ContentProvider и SyncManager является то, что вы получите выгоду от знаний системы Google, которые полезны для экономии времени автономной работы и других ресурсов. Некоторые из этого содержимого находятся в видео, на которое вы ссылаетесь. Например, экспоненциальная логика отвода для предотвращения расточительных попыток синхронизации.

Существует некоторая хорошая информация о сохранении батареи, сохраняя в настоящее время радиоустройство сотовой связи Google I/O 2012 talk "Создание хороших приложений: более продвинутые темы для Expert Android Developers" . Хотя я не упоминал это явно, я думаю, что SyncManager, скорее всего, сохранит свойства сохранения батареи, упомянутые в этом видео.

Основываясь на моем чтении (фактически не реализующем ничего) API-интерфейсов и других ресурсов, таких как пакет com.example.android.samplesync, кажется, что шаблон достаточно гибкий, чтобы адаптироваться к потребностям вашей программы.

Команда, с которой я работаю, внедрила пользовательскую синхронизацию для нашего приложения для Android, но могу сказать, что мы не рассматривали этот вариант, потому что мы были готовы писать как можно больше логики с помощью WebView. Я бы не стал рекомендовать это, но это не ограничивается здесь.