2 qq 28656157 qq_28656157 于 2015.06.01 19:09 提问

android 多个应用调用同一个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;
}
第一个应用程序startservice,第二个检查到在运行,就stopservice了,但我是要始终有一个startservice

2个回答

bdmh
bdmh   Ds   Rxr 2015.06.01 19:21

那你为什么要停止呢,留着不就行了

baidu_28662045
baidu_28662045 如果留着的话那多个应用就同时启动同一个service,会重复service下的动作,他只是需要其中一个启动,其他的检测到service如果运行就什么事都不做
2 年多之前 回复
hikyson
hikyson   2015.06.08 14:00

service创建时,也就是第一次启动时会调用oncreate,如果还在运行,你继续启动的话就不调用oncreate了,而是调用onstartcommand方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!