如果在做类似OA项目的时候,就会考虑到推数据的情况,这时候我们会判断应用程序是否在后台运行,为此我将工具类代码分享下,希望给大家带来帮助。
import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_VISIBLE;
private boolean isBackgroundRunning() {
String processName = "match.android.activity";
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
if (activityManager == null) return false;
// get running application processes
List<ActivityManager.RunningAppProcessInfo> processList = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo process : processList) {
if (process.processName.startsWith(processName)) {
boolean isBackground = process.importance != IMPORTANCE_FOREGROUND && process.importance != IMPORTANCE_VISIBLE;
boolean isLockedState = keyguardManager.inKeyguardRestrictedInpu tMode();
if (isBackground || isLockedState) return true;
else return false;
}
}
return false;
}