在调用Context.bindService
之前,我需要知道特定服务是否可用(正在运行或可以创建)。
有没有办法检查?
答案 0 :(得分:2)
您可以使用代码
检查服务是否正在运行private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
我用它来称呼它:
isMyServiceRunning(MyService.class)
hack bods的一些摘录回应了这个Google Group Discussion
如果您的客户端和服务器代码是同一个.apk的一部分,并且您使用具体的Intent(指定确切服务类的那个)绑定到该服务,那么您可以简单地让您的服务设置为全局变量正在运行,您的客户可以检查。
我们故意没有API来检查服务是否正在运行,因为当你想要做类似的事情时,几乎没有失败,你的代码中最终会出现竞争条件。
答案 1 :(得分:0)
请参阅评论
button1.enabled=true