参数className需要service的完整路径。
代码:
public static boolean isServiceRunning(Context context, String className) {
boolean isRunning = false;
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
// 这里的30代表返回正在运行的service的列表的长度,比如写30,实际有25,就返回25;但是如果实际50,就只返回30了。
List<ActivityManager.RunningServiceInfo> serviceList = activityManager
.getRunningServices(30);
if (!(serviceList.size() > 0)) {
return false;
}
for (int i = 0; i < serviceList.size(); i++) {
if (serviceList.get(i).service.getClassName().equals(className)) {
isRunning = true;
break;
}
}
return isRunning;
}