我需要在后台运行服务,而它一直被 Android 杀死,我需要一次又一次地启动它。由于某些编程目的,我需要知道服务是否正在运行。那是因为我将同时启动第二个服务,并且它会保持两次启动方法。
到目前为止,我已经尝试过:
private boolean isServiceRunning() {
ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager
.getRunningServices(Integer.MAX_VALUE)) {
if (NotificationService.class.getName().equals(
service.service.getClassName())) {
return true;
}
}
return false;
}
但是正如我所读到的那样,只有在我的服务启动时才有可能
startService(Intent);
而且因为我每 2 分钟使用 AlarmManager 启动我的服务,所以我不知道如何检查服务是否正在运行。也许如果您知道如何避免两次或多次使用服务启动方法,我会很满意。