可用辅助方法:
注: 在N的multi-windows 模式下,inactive的app(可见),上面的方法返回false
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