我找到了一些代码,告诉您服务是否正在运行。但它正在编译错误,我不知道为什么。我的服务类名是AudioService(扩展Service的类),我在if语句的代码行中得到编译错误,
AudioService.equals(service.service.getClassName())
,编译器的错误消息是,
无法对类型为对象
的非静态方法equals(object)进行静态引用
我正在使用绑定到服务的Activity内部的方法。我在bindService()
方法中调用了onResume
,在onPause中调用了unbindService()
。只是想使用某种方法来制作Toast消息,以显示该服务实际上正在运行。
我做错了什么以及如何使这段代码正常工作?
private boolean isServiceRunning() {
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (AudioService.equals(service.service.getClassName())) {
return true;
}
}
return false;
}
答案 0 :(得分:0)
试试这个
public boolean isMyServiceRunning(Context context) {
ActivityManager manager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager
.getRunningServices(Integer.MAX_VALUE)) {
if ("com.application.MyService"
.equals(service.service.getClassName())) {
return true;
}
}
return false;
}
答案 1 :(得分:0)
使用此AudioService.class.getName()
private boolean isServiceRunning() {
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (AudioService.class.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}