首页 > 解决方案 > 检测应用程序在单击主页时暂停

问题描述

我想检测我的应用程序何时暂停(当用户按下主页按钮或启动另一个应用程序时)。创建具有实现生命周期的应用程序类不起作用,因为它适用于每个活动切换。而且我不能在任何地方都调用 onpaused 和 onstop。那么我该如何检测到这一点。

标签: android

解决方案


现在,当应用程序最小化时,您可以在 Application 类中轻松检测事件,使用“ ProcessLifecycleOwner”而不是在每个页面中跟踪它。进行以下更改:

build.gradle(应用级):

implementation "android.arch.lifecycle:extensions:1.0.0"

创建一个应用程序类(如果尚未创建)并实现如下代码:

class MainApplication extends Application implements LifecycleObserver {
    @Override
    public void onCreate() {
        super.onCreate();
        ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    public void onAppBackgrounded() {

        Log.d("APPP","APP BACKGROUNDED");

    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    public void onAppForegrounded() {
        Log.d("APPP","APP FOREGROUNDED");
    }
}

推荐阅读