Я пытаюсь (хотя бы частично) определить, когда пользователь закрывает приложение, чтобы освободить некоторые соединения и т. Д. Для этого я использую ProcessLifecycleOwner
с моим классом приложения, реализующим LifecycleObserver
.Несмотря на то, что исходный код взят из учебников и других полезных статей, похоже, он не обнаруживает никаких событий жизненного цикла.
Большая часть кода взята из этого примера .
Myкласс приложения:
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");
}
}
Зависимость в Gradle
dependencies {
//...
implementation 'android.arch.lifecycle:extensions:1.1.1'
}
До сих пор этот код не регистрировал ни одного события какого-либо рода, независимо от того, выходит ли приложение на передний план или на задний план.
РЕДАКТИРОВАТЬ
Примечание. ВАМ НУЖНО объявить свое приложение в манифесте, чтобы все работало в классе пользовательского приложения.