Olá, primeiro vou contar a história do meu problema:
Tenho uma aplicação que sincroniza dados em segundo plano com um servidor de tempos em tempos. Ou seja, conforme usuário usa a aplicação, ao mesmo tempo ela faz download/upload das informações, e isso é informado ao usuário através de uma notificação. Essa sincronização é feita pois necessito dos dados para a aplicação funcionar de forma offline. O problema é que a quantidade de dados a serem sincronizadas é BEMMMMM grande.
Dúvida:
Gostaria de saber qual é a melhor forma de sincronizar esses dados em segundo plano. Hoje utilizo um Service/Runnable, mas percebo que a aplicação as vezes trava alguns segundos, como se a thread principal fosse afetada. Qual seria minha melhor solução? Usar thread? Async Task? Lembrando sempre que a quantidade de informações é bem grande, sendo que preciso de bastante tempo pra sincronizar, as vezes demorando de 10 minutos até 1 hora.
Obrigado.