[Blankj/AndroidUtilCode]AppUtils.isAppForeground 功能不对

2024-07-15 25 views
9

版本 1.29.0

实现方式不对,这种方法实现不了判断应用是否在前台,在我8.1设备上全是true。

用UtilsActivityLifecycleImpl里那个mIsBackground

回答

8

可以提供下代码吗?

8

提供有问题的demo么,还是可用的代码?

7

提供你解决的方案

3
implementation ‘androidx.lifecycle:lifecycle-process:2.2.0‘

import androidx.lifecycle.ProcessLifecycleOwner;

public class AppApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ProcessLifecycleOwner.get().getLifecycle().addObserver(new ApplicationObserver());
    }
}

import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;

public class ApplicationObserver implements LifecycleObserver {

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    private void onAppBackground() {
        // TODO: 2020/10/26  应用到后台
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    private void onAppForeground() {
         // TODO: 2020/10/26  应用到前台
    }
}
3

我想了解下 mIsBackground 值在什么情况下不对?

4

按下home,这之后程序在后台执行,获取的mIsBackground值不对,AppUtils.isAppForeground也不对

3

你有试过 AppUtils.registerAppStatusChangedListener() 吗,我这边测试的不会存在你说的问题呀

5

AppUtils.registerAppStatusChangedListener() 回调是对的,前台后台切换,对应的方法都执行。 AppUtils.isAppForeground()获取的值不对,都是true