问题描述
- 多个应用调用同一个service 不产生互斥(以startService启动的)
-
public boolean isServiceWork(Context mContext, String serviceName) {
boolean isWork = false;
ActivityManager myAM = (ActivityManager) mContext
.getSystemService(Context.ACTIVITY_SERVICE);
List myList = myAM.getRunningServices(40);
if (myList.size() <= 0) {
return false;
}
for (int i = 0; i < myList.size(); i++) {
String mName = myList.get(i).service.getClassName().toString();
if (mName.equals(serviceName)) {
isWork = true;
break;
}
}
return isWork;
}
多个应用就同时启动同一个service,会重复service下的动作,我只是需要其中一个启动,其他的检测到service如果运行就什么事都不做,这该怎么做?上部分代码是检查service的状态。求大神解答!
解决方案
改成这样可以吗?
public boolean synchronized isServiceWork(Context mContext, String serviceName)
解决方案二:
你是调用services里的方法,互斥不互斥在客户端是无法解决的。除非services提供对方法或资源的互斥调用。
时间: 2024-10-07 20:21:53