/ / REST upload em segundo plano - android, rest, android-service, android-sqlite, android-contentprovider

Upload REST em background - android, descanso, android-service, android-sqlite, android-contentprovider

Meu aplicativo para Android tem um ContentProvider e armazena dados (strings) em uma tabela SQLite Essas linhas precisam ser enviadas para um servidor da Internet

Quero que esses dados sejam carregados em segundo plano quando o host remoto estiver disponível (Wi-Fi ativado, por exemplo)

Os dados devem ser enviados o mais rápido possível (quando a rededisponível, é claro) sem interferir na interface do usuário do meu aplicativo Ele deve ser enviado mesmo quando meu aplicativo não tiver o foco principal (o usuário pode estar usando o sms ou usando a câmera)

Novos dados podem ser adicionados à tabela (fila de saída) a cada 5 segundos

P: Devo usar um serviço em segundo plano para enviar as linhas não enviadas?

Parece muito frequente usar o "Serviço de Alarme", mas posso estar errado

A vida útil da bateria é a minha principal preocupação, mas, em segundo lugar, é preciso enviar o mais rápido possível (ou logo após a Internet disponível)

Android Studio API de segmentação 17+

Respostas:

0 para resposta № 1

Um serviço em segundo plano seria melhor para lidar com osolicitar e economizar bateria. Você pode verificar o estado da conexão e enviar a si mesmo e deixar o serviço funcionar quando não há conexão, ou melhor ainda, usar o serviço para sempre enviar os dados e decidir quando enviar.

Quanto ao serviço, veja esta pergunta: Como ser notificado sobre alterações no status da rede wifi?

A idéia seria usar o código nessa respostaimplementar um receptor de transmissão em seu serviço para detectar quando há uma conexão disponível. Quando essa conexão estiver disponível, você poderá enviar os dados.