我可以走一千步去喜歡你,也可以退一千零一步離開你
場景分析:
在開發中,有時候我們會需要判斷應用是否在前台運作,然後才做什麼操作;當應用切換到背景時,才做什麼操作。這時候我們需要判斷應用在前台還是背景運作的情況
/** 判斷程式是否在背景運作 */
public static boolean isRunBackground(Context context) {
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appProcesses = activityManager
.getRunningAppProcesses();
for (RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(context.getPackageName())) {
if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
// 表明程式在背景運作
return true;
} else {
return false;
}
}
}
return false;
}
/** 判斷程式是否在前台運作(目前運作的程式) */
public boolean isRunForeground() {
ActivityManager activityManager = (ActivityManager) getApplicationContext()
.getSystemService(Context.ACTIVITY_SERVICE);
String packageName = getApplicationContext().getPackageName();
List<RunningAppProcessInfo> appProcesses = activityManager
.getRunningAppProcesses();
if (appProcesses == null)
return false;
for (RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(packageName)
&& appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
return true;// 程式運作在前台
}
}
return false;
}