una studio segundo programacion plano notificación notificaciones mensajes maneja libro app android android-activity background

studio - ¿Cómo obtener una devolución de llamada cuando la aplicación Android viene en primer plano desde el fondo?



notificaciones push android firebase (4)

¿Cómo saber el estado de la aplicación de fondo en primer plano en Android?

Amplié mis actividades de una convocatoria de actividad de base y la clase de actividad de base amplía la actividad de Android. Puse el código appcomeForeground () en la actividad base en onRestart () pero también su llamada cuando navegamos por la actividad en nuestra aplicación de primer plano.

Por favor, sugiera la forma de recuperar la llamada solo cuando la aplicación aparezca en primer plano.

Gracias por adelantado.


Mantener una variable booleana en Baseactivity,

es decir:

private boolean isForeground;

En el interior onResume() de Baseactivity make isForeground = true y dentro del método onPause() de Baseactivity make isForeground = false

y siempre que quiera saber el estado, verifique esa variable booleana y aplique su lógica adicional en consecuencia.


No hay una forma proporcionada por el marco para hacer esto. He descrito mi propia solución aquí: https://.com/a/14734761/1207921


Otra forma de resolverlo es llamar a putExtra en los intentos que permiten al usuario navegar entre las actividades de la aplicación. Si onRestart / onResume no recibe este Extra, la aplicación acaba de entrar en primer plano.


Para verificar si su aplicación está en segundo plano, puede hacer lo siguiente.

Declare una clase que mantendrá el estado

public class ApplicationState { public static boolean isActivityVisible() { return activityVisible; } public static void activityResumed() { activityVisible = true; } public static void activityPaused() { activityVisible = false; } private volatile static boolean activityVisible; }

en el método onResume de cada actividad de su llamada a la aplicación

ApplicationState.activityResumed()

y en el método onPause de cada actividad de su aplicación llame

ApplicationState.activityPaused()

Ahora, en cualquier momento, puede verificar el estado de fondo / fondo de su aplicación simplemente llamando

ApplicationState.isActivityVisible()