Sto progettando un'app che ha il compito ricorrente di inviare la presenza a un server dedicato fintanto che l'app è in primo piano.
Nelle mie ricerche sul Web ho visto alcuni approcci diversi e volevo sapere qual è il modo migliore per farlo.
Qual è il modo migliore per pianificare una chiamata al server?
Le opzioni che ho visto erano:
Timer .
Servizio .
BroadcastReciever con AlarmManager .
Qual'è la tua opinione?
EDIT:
Il motivo per cui ne ho bisogno è per un'app basata su chat che invia tutte le azioni dell'utente a un server remoto.
cioè l'utente sta scrivendo un messaggio, l'utente sta leggendo un messaggio, l'utente è online, l'utente è offline ecc.
Ciò significa che una volta ogni intervallo, devo inviare al server quello che sto facendo, poiché apro una chat room con altre persone, loro hanno bisogno di sapere cosa sto facendo.
Simile al meccanismo di feedback dei messaggi di whatsapp:
EDIT # 2: le
attività ricorrenti dovrebbero ora essere pianificate quasi sempre tramite l' JobScheduler
API (o FirebaseJobDispatcher
per API inferiori) al fine di evitare problemi di esaurimento della batteria, come si può leggere nella sezione dei dati vitali della formazione Android
EDIT # 3:
FirebaseJobDispatcher è stato deprecato e sostituito da Workmanager , che incorpora anche le funzionalità di JobScheduler.