Android程序开发时,有时需要判断当前程序是否处于前台或者后台。以便进行专属于前台或者后台的操作。那么如何判断呢?这里给出日常程序开发中的一些代码,希望能给大家带来些许帮助:
public boolean isAppOnForeground(Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
if (am == null) {
return false;
}
String packageName = context.getPackageName();
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
List<ActivityManager.RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();
if (processInfos == null) {
return false;
}
for (ActivityManager.RunningAppProcessInfo processInfo : processInfos) {
if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND || processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_TOP_SLEEPING) {
for (String activeProcess : processInfo.pkgList) {
if (activeProcess.equalsIgnoreCase(packageName)) {
return true;
}
}
}
}
} else {
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
if (componentInfo.getPackageName()
.equalsIgnoreCase(packageName)) {
return true;
}
}
return false;
}