Estoy diseñando una aplicación que tiene la tarea recurrente de enviar presencia a un servidor dedicado siempre que la aplicación esté en primer plano.
En mis búsquedas en la web, vi algunos enfoques diferentes y quería saber cuál es la mejor manera de hacerlo.
¿Cuál es la mejor forma de programar una llamada al servidor?
Las opciones que vi fueron:
Servicio .
BroadcastReciever con AlarmManager .
¿Cual es tu opinion?
EDITAR:
La razón por la que necesito esto es para una aplicación basada en chat que envía todas las acciones del usuario a un servidor remoto.
es decir, el usuario está escribiendo un mensaje, el usuario está leyendo un mensaje, el usuario está en línea, el usuario está fuera de línea, etc.
Esto significa que una vez en cada intervalo, necesito enviar al servidor lo que estoy haciendo, ya que abro una sala de chat con otras personas, necesitan saber lo que estoy haciendo.
Similar al mecanismo de retroalimentación de mensajes de WhatsApp:
EDICIÓN # 2: las
tareas recurrentes ahora deben programarse casi siempre a través de la JobScheduler
API (o FirebaseJobDispatcher
para API inferiores) para evitar problemas de agotamiento de la batería, como se puede leer en la sección de aspectos vitales de la capacitación de Android
EDICIÓN # 3:
FirebaseJobDispatcher ha quedado obsoleto y reemplazado por Workmanager , que también incorpora funciones de JobScheduler.