要检测一个Service是否已经被stopService
停止,可以使用isServiceRunning
方法来检查Service的运行状态。下面是一个示例代码:
public boolean isServiceRunning(Context context, Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> runningServices = manager.getRunningServices(Integer.MAX_VALUE);
for (ActivityManager.RunningServiceInfo serviceInfo : runningServices) {
if (serviceInfo.service.getClassName().equals(serviceClass.getName())) {
return true;
}
}
return false;
}
在这个方法中,首先获取ActivityManager
实例,然后使用getRunningServices
方法获取所有正在运行的Service列表。接着遍历列表,通过比较Service的类名是否与目标Service类的名称相同来判断Service是否正在运行。
在调用stopService
方法之后,可以使用上面的方法检查目标Service是否已经停止。