监测应用是否进入后台

在自定义的application的oncreate里面注册ActivityLifecycleCallbacks回调

private int foregroundActivityCount = 0;
private int onCreateActivityCount = 0;

 

private void registActivityLifeCycleListener() {
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                onCreateActivityCount++;
            }

            @Override
            public void onActivityStarted(Activity activity) {
                foregroundActivityCount++;
            }

            @Override
            public void onActivityResumed(Activity activity) {

            }

            @Override
            public void onActivityPaused(Activity activity) {

            }

            @Override
            public void onActivityStopped(Activity activity) {
                foregroundActivityCount--;

                if (foregroundActivityCount == 0 && onCreateActivityCount == 1) {
                    ToastUtil.toast("进入后台运行");
                }
            }

            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

            }

            @Override
            public void onActivityDestroyed(Activity activity) {
               onCreateActivityCount--;

            }
        });
    }

猜你喜欢

转载自blog.csdn.net/hpp_1225/article/details/82997439