多个应用调用同一个service 不产生互斥(以startService启动的)

问题描述

多个应用调用同一个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

多个应用调用同一个service 不产生互斥(以startService启动的)的相关文章

android 多个应用调用同一个service 不产生互斥(以startService启动的)

问题描述 android 多个应用调用同一个service 不产生互斥(以startService启动的) public boolean isServiceWork(Context mContext, String serviceName) { boolean isWork = false; ActivityManager myAM = (ActivityManager) mContext .getSystemService(Context.ACTIVITY_SERVICE); List myL

android中android中 1.StartService()启动Service 2.BindService()启动Service 有何区别

问题描述 android中android中 1.StartService()启动Service 2.BindService()启动Service 有何区别 android中 1.StartService()启动Service 2.BindService()启动Service 有何区别和联系 解决方案 http://www.cnblogs.com/yejiurui/p/3429451.htmlhttp://blog.csdn.net/zhuangyalei/article/details/4708

aop-springAOP aspactj拦截自定义注解 输出日志,同一个service内方法调用,拦截不到

问题描述 springAOP aspactj拦截自定义注解 输出日志,同一个service内方法调用,拦截不到 切面类如图: service impl(实现类)引用示例: ,我就纳闷了,为什么同一个类中的方法调用,被调用的方法配置业务描述注解拦截不到呀!跪求大神开示! 解决方案 同一个类中的是拦截不到的,因为同一个类中的方法调用没用代理. 解决方案二: 第一次遇到这问题,能不能给个建议解决这问题呀!

使用Integrated Web Services Client for ILE在ILE程序中调用Web Service 二

什么是Web Service客户端处理器 Web Service客户端处理器(Client Side Handler)是Integrated Web Services Client for ILE提供的一种客户端Web Service调用监听机制,当客户端Stub程序封装好请求SOAP消息准备发送,或者客户端Stub程序接收到响应SOAP消息准备处理时,可以通过客户端Handler机制进行消息监听以及修改SOAP Header信息,然后 Integrated Web Services Clien

虚拟键盘-JavaScript怎样实现咋键盘上按下不同的键,页面上不同的div调用同一个css样式

问题描述 JavaScript怎样实现咋键盘上按下不同的键,页面上不同的div调用同一个css样式 这是页面上的一个虚拟键盘,我想实现的是当我在电脑的键盘上按键后,虚拟键盘上的相对应的键会有不同的显示效果(调用一个css)(虚拟键盘上的每一个小键都是一个图片),就是当我按下不同的按键,页面上相对的键所在的div就会调用同一个css 解决方案 虚拟键盘上的每个控件都增加keycode属性,然后document.onkeydown获取时间的keycode属性后获取控件添加个样式,过100ms再移除什

gsoap频繁调用web service问题

问题描述 gsoap频繁调用web service问题 我使用gsoap调用web service,访问比较频繁的时候有时候调用到一半就断开连接. 例如:线程1用gsoap调用web service,数据发送给服务器了,服务器还没有返回数据给我,我又开启一个线程调用web service,这样gsoap好像会自动断开跟web service的连接.(备注:两个线程访问的是web service的同一个方法),如果两个线程访问时间间隔2.5秒,就什么问题都没有.

手把手教你实现、部署和调用Web Service

手把手教你实现.部署和调用Web Service

在ASP.NET Atlas中调用Web Service—处理错误

asp.net|web|错误 在本系列的上一篇(在ASP.NET Atlas中调用Web Service--介绍及简单应用)中,我们熟悉了Atlas中调用Web Service的最基础方法,但是在实际开发中,仅仅发出请求并等待返回结果是不够的,我们大都需要考虑对错误超时等的处理,也要允许用户取消操作.幸运的是,Atlas对Web Service中的Web Method的封装也充分考虑到了这些需求.让我们举一个Web Method的例子来说明,例如,对于如下的Web Method: public

在ASP.NET Atlas中调用Web Service—批量调用以提高效率

asp.net|web 对于Atlas程序,在某些情况下,我们需要在短时间内调用大量的Web Service,例如某个列表中用户快速的点击删除.这时网络带宽,稳定程度等等往往会造成较长时间的延迟.如果可以将这些调用包装成一个单一的请求,那么用户只需忍受一次网络延迟,即可得到处理的结果,也间接的提高了效率.似乎这并不是一个很容易实现的功能,但幸运的是,Atlas中内建了对批量调用Web Service的支持,您所需要的只是在程序中简单设置一下. Atlas中每个Web Service的调用请求都有