java - 如何使用 ProcessLifecycleOwner 捕捉生命周期事件?

标签 java android android-lifecycle android-architecture-components

我正在尝试(至少部分地)确定应用程序何时被用户关闭以释放一些连接等。为此,我使用 ProcessLifecycleOwner 和我的应用程序类实现 LifecycleObserver。尽管从教程和其他有用的文章中获取了起始代码,但它似乎没有检测到任何生命周期事件。

大部分代码来自this example .

我的应用类:

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'
}

到目前为止,这段代码还没有记录任何类型的事件,无论应用是进入前台还是后台。

编辑

注意:您需要在 list 中声明您的应用程序,以便在您的自定义应用程序类中工作。

最佳答案

你需要相应的注解处理器来关注那些注解:

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

或者,启用 Java 8 支持,并切换到 DefaultLifecycleObserver

关于java - 如何使用 ProcessLifecycleOwner 捕捉生命周期事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56780722/

相关文章:

Android 约束布局显示属性 'android:layout_constraintWidth_percent' 未找到

java - 裁剪图像的中心

android - 在底部选项卡导航中重新附加到其 fragment 容器时,嵌套 fragment 的状态会丢失

android - Android上最 "death-resistant"的组件是什么?

java - XPath 中的循环?

java - 来自硬编码 X.509 证书的 KeyFactory.generatePublic

java - 为什么我的代码不正确(处理字符串)?

java - 在 Java 1.7 中使用 Android Studio

android - 为什么在 Intent 重定向代码之后执行代码?

java - Struts2如何在没有线程的情况下获得性能?