Как перехватить события жизненного цикла с ProcessLifecycleOwner? - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь (хотя бы частично) определить, когда пользователь закрывает приложение, чтобы освободить некоторые соединения и т. Д. Для этого я использую 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'
}

До сих пор этот код не регистрировал ни одного события какого-либо рода, независимо от того, выходит ли приложение на передний план или на задний план.

РЕДАКТИРОВАТЬ

Примечание. ВАМ НУЖНО объявить свое приложение в манифесте, чтобы все работало в классе пользовательского приложения.

1 Ответ

1 голос
/ 26 июня 2019

Вам нужен соответствующий процессор аннотаций, чтобы обратить внимание на эти аннотации:

annotationProcessor 'android.arch.lifecycle:compiler:1.1.1'

Или включите поддержку Java 8 и переключитесь на DefaultLifecycleObserver.

...