android切换前后台状态监听

public class BaseApplication extends Application {
    private static BaseApplication instance;
    /**
     * 当前Activity个数
     */
    private int activityNumber = 0;
    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
        instance = this;
    }

    public static BaseApplication getInstance() {
        return instance;
    }


    /**
     * Activity 生命周期监听,用于监控app前后台状态切换
     */
    ActivityLifecycleCallbacks activityLifecycleCallbacks = new ActivityLifecycleCallbacks() {
        @Override
        public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

        }

        @Override
        public void onActivityStarted(Activity activity) {
            if (activityNumber == 0) {
                LogUtil.i("app回到前台");
            }
            activityNumber++;
            LogUtil.i("activityNumber = " + activityNumber);
        }

        @Override
        public void onActivityResumed(Activity activity) {
        }

        @Override
        public void onActivityPaused(Activity activity) {
        }

        @Override
        public void onActivityStopped(Activity activity) {
            activityNumber--;
            LogUtil.i("activityNumber = " + activityNumber);
            if (activityNumber == 0) {
                // app回到后台
                LogUtil.i("app回到后台");
            }
        }

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

        @Override
        public void onActivityDestroyed(Activity activity) {
        }
    };

}

 

posted on 2018-01-09 18:03  白衣雨果  阅读(4167)  评论(0编辑  收藏  举报