Estou projetando um aplicativo que tem uma tarefa recorrente de enviar presença para um servidor dedicado, desde que o aplicativo esteja em primeiro plano.
Nas minhas pesquisas na web, vi algumas abordagens diferentes e queria saber qual é a melhor maneira de fazer isso.
Qual é a melhor maneira de agendar uma chamada de servidor?
As opções que vi foram:
Serviço .
BroadcastReciever com AlarmManager .
Qual a sua opinião?
EDIT:
A razão pela qual eu preciso disso é para um aplicativo baseado em bate-papo que envia todas as ações do usuário para um servidor remoto.
ou seja, o usuário está digitando uma mensagem, o usuário está lendo uma mensagem, o usuário está online, o usuário está offline etc.
Isso significa que, a cada intervalo, preciso enviar ao servidor o que estou fazendo, já que abro uma sala de bate-papo com outras pessoas, elas precisam saber o que estou fazendo.
Semelhante ao mecanismo de feedback da mensagem do whatsapp:
EDIÇÃO 2:
Agora, as tarefas recorrentes devem ser agendadas quase sempre por meio da JobScheduler
API (ou FirebaseJobDispatcher
APIs mais baixas), a fim de evitar problemas de esgotamento da bateria, conforme pode ser lido na seção vitais do treinamento do Android
EDIT # 3: O
FirebaseJobDispatcher foi preterido e substituído pelo Workmanager , que também incorpora recursos do JobScheduler.