una studio segundo que plano mantener las hacer evitar como cierren cierre cierran app aplicaciones aplicacion activar android

studio - mantener app en segundo plano android



La mejor manera de tener una encuesta de aplicaciones de Android periódicamente en segundo plano (2)

Tome la aplicación Gmail como ejemplo. Ya sea que el teléfono esté encendido o no, sondea cada 10 minutos aproximadamente para descargar nuevos correos electrónicos que pueden haber llegado desde la última vez que verificaste.

Sé cómo crear un nuevo servicio y enlazarlo. Pero puedo ver algunas maneras de lograr esto:

  • Enlazar una vez, y hacer que el servicio se ejecute en un bucle infinito, durmiendo durante 10 minutos entre cada bucle
  • Enlazar y desenlazar cuando está listo, programando el siguiente enlace de alguna manera en 10 minutos
  • Usando la clase AlarmManager para programar encuestas futuras

¿Cuáles son las compensaciones? ¿Cómo lo logra la aplicación Gmail?

¡Gracias!


La aplicación de Gmail utiliza el empuje, no el sondeo. Sugiero utilizar esta técnica en su lugar, el sondeo es un asesino de la batería en dispositivos móviles.

Para implementar el empuje, eche un vistazo a C2DM .

Si aún desea realizar una encuesta, la forma recomendada sería configurar una alarma periódica en el AlarmManager.

ACTUALIZACIÓN : Google ha dejado de usar C2DM y lo ha reemplazado con Google Cloud Messaging (GCM)

ACTUALIZACIÓN : Google ha dejado de utilizar GCM y lo ha reemplazado con Firebase Cloud Messaging (FCM)


  • Para una encuesta continua, pero no intensiva, como la que comenta (en el rango de minutos entre encuestas), lo implementaría con AlarmManager. De esa manera, se asegura de que el teléfono se despierte para sondear sin necesidad de un wakelock, lo que destruiría su batería. Como lo señaló CommonsWare, aún deberá implementar un wakelock durante el tiempo en que se ejecuta el código, pero puede liberarlo tan pronto como termine el código, evitando mantener el teléfono encendido mientras espera. Vea su comentario para un ejemplo sobre cómo implementarlo.

  • Yo usaría un Servicio si, en cambio, necesita encuestas más rápidas durante un período de tiempo más corto (segundos entre cada encuesta), ya que configurar alarmas no tiene sentido para períodos tan cortos, y la batería se agotaría de todos modos.