Transferir dados com adaptadores de sincronização

Observação: recomendamos WorkManager como a solução para a maioria dos casos de uso de processamento em segundo plano. Consulte o guia de processamento em segundo plano para saber qual solução é mais adequada para você.

A sincronização de dados entre um dispositivo Android e servidores da Web pode tornar seu app significativamente mais útil e atraente para os usuários. Por exemplo, a transferência de dados para um servidor da Web faz um backup útil, e a transferência de dados de um servidor os torna disponíveis para o usuário, mesmo quando o dispositivo está off-line. Em alguns casos, os usuários podem achar mais fácil acessar e editar dados em uma interface da Web e disponibilizar esses dados nos dispositivos ou coletar dados ao longo do tempo e enviá-los para uma área de armazenamento central.

Embora seja possível projetar seu próprio sistema para fazer transferências de dados no app, considere a possibilidade de usar o framework do adaptador de sincronização do Android. Esse framework ajuda a gerenciar e automatizar as transferências de dados e coordena as operações de sincronização em diferentes apps. Ao usar esse framework, você pode aproveitar vários recursos que não estão disponíveis para esquemas de transferência de dados criados por você:

Arquitetura de plug-in
Permite que você adicione o código de transferência de dados ao sistema na forma de componentes que podem ser chamados.
Execução automatizada
Permite que você automatize a transferência de dados com base em vários critérios, incluindo alterações de dados, tempo decorrido ou hora do dia. Além disso, o sistema adiciona transferências que não podem ser executadas em uma fila e as executa quando possível.
Verificação de rede automatizada
O sistema só executa a transferência de dados quando o dispositivo tem conectividade de rede.
Melhor desempenho da bateria
Permite que você centralize todas as tarefas de transferência de dados do seu app em um único lugar, para que todas sejam executadas ao mesmo tempo. Sua transferência de dados também é programada em conjunto com as de outros apps. Esses fatores reduzem o número de vezes que o sistema precisa para alternar a rede, o que reduz o uso da bateria.
Gerenciamento de contas e autenticação
Se o app exigir credenciais de usuário ou login no servidor, você poderá integrar o gerenciamento de contas e a autenticação à transferência de dados.

Esta aula mostra como criar um adaptador de sincronização e o Service vinculado que os une, como fornecer os outros componentes que ajudam você a conectar o adaptador sincronização ao framework e como executar o adaptador de sincronização para funcionar de várias maneiras.

Observação: como os adaptadores de sincronização são executados de forma assíncrona, você precisa usá-los com a expectativa de transferir dados regularmente e de forma eficiente, mas não instantaneamente. Se você precisar fazer a transferência de dados em tempo real, faça-o em uma AsyncTask ou um IntentService.

Lições

Criar um autenticador de stubs
Saiba como adicionar um componente de gerenciamento de conta que o framework do adaptador de sincronização espera que seja parte do app. Esta lição mostra como criar um componente de autenticação de stubs para simplificar.
Criar um provedor de conteúdo stub
Saiba como adicionar um componente do provedor de conteúdo que o framework do adaptador de sincronização espera que seja parte do app. Nesta lição, pressupomos que seu app não use um provedor de conteúdo; por isso ela mostra como adicionar um componente stub. Se você já tem um provedor de conteúdo no app, pode pular esta lição.
Criar um adaptador de sincronização
Saiba como encapsular seu código de transferência de dados em um componente que o framework do adaptador de sincronização possa executar automaticamente.
Executar um adaptador de sincronização
Saiba como acionar e programar transferências de dados usando o framework do adaptador de sincronização.