如何判断APP是否在后台

可用辅助方法:
public static boolean isInBackground(Context context) {
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
        boolean isInBackground = true;
        for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
            for (String activeProcess : processInfo.pkgList) {
                if (activeProcess.equals(context.getPackageName())) {
                    if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                        isInBackground = false;
                    }
                    return isInBackground;
                }
            }
        }
        return isInBackground;
    }


注: 在N的multi-windows 模式下,inactive的app(可见),上面的方法返回false

猜你喜欢

转载自enuocm.iteye.com/blog/2310094