una studio segundo programacion plano para notificación notificaciones mensajes maneja edición desarrollo app aplicaciones android background

studio - notificaciones push android firebase



Android: ¿cómo saber cuándo entra una aplicación o el modo de "fondo"? (1)

Voy a hacer referencia al ciclo de vida de la Activity . Entre onResume y onPause tu Activity es ''activa'', es decir, está en la pantalla y el usuario puede interactuar con ella. Si se onPause método onPause su actividad, debe suponer que ya no está "activo" y el usuario ya no puede interactuar con él hasta que se onResume llamar a onResume . Si desea hacer un seguimiento de esto en su servicio, tendrá que hacerlo manualmente.

Probablemente esto se logre más fácilmente llamando a un método en su servicio en la Activity#onResume que incrementa un contador o establece un indicador y en onPause ese cambio. Si tiene múltiples actividades, lo más probable es que necesite un contador, probablemente un AtomicInteger , y lo use para determinar cuándo debe reanudar su votación.

Probablemente esperaría un poco de tiempo cuando el contador llegue a 0, vuelva a verificarlo y, si todavía es 0, reanude el sondeo. Esto explicaría la brecha entre onPause una actividad y onPause otra.

Estoy tratando de lograr lo siguiente con Android:

  • cuando la aplicación está en segundo plano, un hilo sondea un servidor de vez en cuando para recuperar datos y notifica al usuario si hay nuevos datos disponibles. Estoy usando un servicio para eso, bien.

  • cuando la aplicación está en uso "activo", es decir, una de sus actividades es visible, el sondeo debe detenerse ya que podría interferir con otras acciones del usuario.

No entiendo cómo detectar la transición entre el uso "activo" o "de fondo" de la aplicación. Los métodos de actividad onResume () no parecen ayudar, ya que una actividad puede ocultarse o verse durante el uso "activo" de todos modos. Según entiendo, la aplicación en sí no hace la diferencia entre los 2 estados.
¿Se puede relacionar cuando se presiona el botón HOME? ¿Hay alguna otra forma de hacer la distinción?
Estoy pensando en un equivalente del método de delegado de aplicación de iPhone applicationDidEnterBackground . ¿Es la forma correcta de pensar con Android? ¿O debo usar otro enfoque?

Gracias.