使用ActivityManager类,判断某应用是否在运行:
/*
* @param context
* @param packageName
* @return true为在运行,false则不再运行
* @description 判断应用是否在运行 (需要声明权限"android.permission.GET_TASKS")
*/
public static boolean isAppRunning(Context context, String packageName) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> taskList = am.getRunningTasks(100);
if (taskList == null || taskList.size() == 0) {
return false;
}
for (RunningTaskInfo runningTaskInfo : taskList) {
if (runningTaskInfo.topActivity.getPackageName()
.equals(packageName)
&& runningTaskInfo.baseActivity.getPackageName().equals(
packageName)) {
return true;
}
}
return false;
}
判断是否在后台运行
/*
* @param context
* @return true为在运行,false则不再运行
* @description 判断本身应用是否在后台运行 (需要声明权限"android.permission.GET_TASKS")
*/
public static boolean isApplicationInBackground(Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context. ACTIVITY_SERVICE);
List<RunningTaskInfo> taskList = am.getRunningTasks(1) ;
if (taskList != null && !taskList.isEmpty()) {
ComponentName topActivity = taskList.get(0).topActivity ;
if (topActivity != null
&& !topActivity.getPackageName().equals(
context.getPackageName())) {
return true ;
}
}
return false ;
}