Sqlite de sincronização do Android
-
09-12-2019 - |
Pergunta
Estou fazendo uma espécie de aplicativo de dicionário que usa SQLite
.Tenho uma única tabela que guarda o par de palavras estrangeiras e suas traduções.Eu quero sincronizar esta tabela com uma planilha específica em documentos Google.
Eu encontrei isso biblioteca incrível recuperar e manipular GoogleSpreadsheets
, então pelo menos estou coberto para isso.Mas não me sinto confortável com a sincronização.Agora,
- Posso usar um
SyncAdapter
para fazer essa sincronização entre meusSQLite
e umGoogleSpreadsheet
?Se sim, como eu faria isso?Eu recuperaria e manipularia as linhas da planilha noonPerformSync
ou smth? - Quais poderiam ser as outras alternativas para tal cenário?Devo usar um serviço normal para fazer a verificação quando o usuário solicitar (na atividade principal, por exemplo)?
Nos vídeos do Google I/O (particularmente em Aplicativos cliente REST para Android ) eles parecem bastante persuasivos para usar o SyncAdapter
mas não tenho certeza se isso poderia me ajudar sem um serviço REST real.
Desde já, obrigado..
Solução
Um bom motivo para usar o Android SyncAdapter
, ContentProvider
e SyncManager
é que você se beneficiará do conhecimento do sistema Google que é útil para preservar a vida útil da bateria e outros recursos.Parte desse conteúdo está no vídeo ao qual você vincula.Por exemplo, lógica de back-off exponencial para evitar tentativas inúteis de sincronização.
Há algumas boas informações sobre a preservação da vida útil da bateria, conservando a energia do rádio celular nos dias de hoje. Palestra do Google I/O 2012 "Tornando bons aplicativos excelentes:Tópicos mais avançados para desenvolvedores Android especializados." Embora não seja mencionado explicitamente, penso que o SyncManager
provavelmente terá as propriedades de conservação da bateria mencionadas neste vídeo.
Com base na minha leitura (na verdade, não implementando nada) das APIs e outros recursos, como o com.example.android.samplesync
pacote, parece que o padrão é flexível o suficiente para se adaptar às necessidades do seu programa.
A equipe com a qual estou trabalhando implementou a sincronização personalizada para nosso aplicativo Android, mas posso dizer que não consideramos essa opção porque estávamos comprometidos em escrever o máximo de lógica possível para executar com o WebView
.Eu não recomendaria necessariamente isso, mas isso está além do escopo aqui.