Estoy tratando de (al menos parcialmente) determinar cuando una aplicación se cierra por el usuario para liberar algunas conexiones, etc. Para ello, estoy usando el ProcessLifecycleOwner
con mi clase de aplicación implementación LifecycleObserver
. A pesar de tomar el código a partir de tutoriales y otros artículos útiles, no parece para detectar eventos del ciclo de vida.
La mayor parte del código de vino de este ejemplo .
Mi clase de aplicación:
public class App extends Application implements LifecycleObserver {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void created() {
Log.d("SampleLifeCycle", "ON_CREATE");
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void started() {
Log.d("SampleLifeCycle", "ON_START");
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void resumed() {
Log.d("SampleLifeCycle", "ON_RESUME");
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void paused() {
Log.d("SampleLifeCycle", "ON_PAUSE");
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void stopped() {
Log.d("SampleLifeCycle", "ON_STOP");
}
}
La dependencia en Gradle
dependencies {
//...
implementation 'android.arch.lifecycle:extensions:1.1.1'
}
Hasta el momento, este código no se ha registrado un solo caso de cualquier tipo, si la aplicación está entrando en el primer plano o el fondo.
EDITAR
Nota: Es necesario declarar su aplicación en el Manifiesto para nada al trabajo en su clase de aplicaciones personalizadas.
Es necesario que el procesador de anotación correspondiente a prestar atención a esas anotaciones:
annotationProcessor 'android.arch.lifecycle:compiler:1.1.1'
O, activar Java 8 de apoyo, y el interruptor a DefaultLifecycleObserver
.