Android 如何检查以前启动的自定义自有服务是否正在运行

Android 如何检查以前启动的自定义自有服务是否正在运行,android,service,android-service,background-thread,Android,Service,Android Service,Background Thread,嗨,我有一个活动和一个服务班 从活动开始,我开始服务 在某一点上,我想启动服务,但在同一点上,我想检查服务是否已在运行如果是,则我不想调用启动服务如果不是,则我将开始,但我的问题是,我将如何知道服务是否正在运行 我用了下面的代码,但它不适合我是任何其他代码,这将帮助我 private boolean isServiceRunning() { ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SE

嗨,我有一个活动和一个服务班 从活动开始,我开始服务 在某一点上,我想启动服务,但在同一点上,我想检查服务是否已在运行如果是,则我不想调用启动服务如果不是,则我将开始,但我的问题是,我将如何知道服务是否正在运行

我用了下面的代码,但它不适合我是任何其他代码,这将帮助我

  private boolean isServiceRunning() {
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager
            .getRunningServices(Integer.MAX_VALUE)) {
        if ("TimerService".equals(service.service.getClassName())) {
            Toast.makeText(getApplicationContext(), "running", 100).show();
            return true;

        }
    }
    Toast.makeText(getApplicationContext(), "not running", 100).show();
    return false;
}

此代码始终显示即使它正在运行,也不会tunning您不需要检查它是否正在运行。
startService()
stopService()
都将处理相应的状态,因此如果调用
startService()
并且您的
服务已经运行,则不会发生任何事情(它将继续运行)。这同样适用于
stopService()

我需要再次检查,因为当我调用启动服务2次时,它会从60秒开始重新启动倒计时(60秒是我的计数器限制)我在我的服务中调用倒计时代码看看这个,这可能会对您有所帮助:谢谢,我从您提供的链接中得出了结论,并且从这个链接中又看到了一个链接,我知道我们可以多次调用服务,不用担心,唯一的问题是服务中的onStartCommand()将被多次调用(即启动服务的次数)不幸的是,我的计时器相关代码就在其中,所以我将代码从onStartCommand()移动到onCreate()方法,感谢您的帮助