Android对app在前台后台的监控

2018-02-23  本文已影响417人  风雪守候

app在前台还是后台的判断有很多种,如:
1.在BaseActivity中对Activity的进行保存管理,可以通过根据当前的所有Activity的状态来判断应用是否是在前台显示。
2.在application中注册registerActivityLifecycleCallbacks()的回调,通过回调来判断是否在前台

public class MyApp extends Application {
    private static final String TAG = "TEST_APP";
    private static int mActivityCount;

    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
            }

            @Override
            public void onActivityStarted(Activity activity) {
                mActivityCount++;
                if(mActivityCount == 1) {
                    Log.e(TAG, "后台->前台");
                }
            }

            @Override
            public void onActivityResumed(Activity activity) {
            }

            @Override
            public void onActivityPaused(Activity activity) {
            }

            @Override
            public void onActivityStopped(Activity activity) {
                mActivityCount--;
                if(mActivityCount == 0) {
                    Log.e(TAG, "前台->后台");
                }
            }

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

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

3.通过获取系统ActivityManager来判断。
4.其他方法

上一篇下一篇

猜你喜欢

热点阅读