如何检查里面的服务是相同的服务已经运行? [英] How to check inside service is same service already running?

查看:162
本文介绍了如何检查里面的服务是相同的服务已经运行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有被许多应用程序的服务。开发者只需启动该服务,它不会工作。如果APPA,APPB和APPC启动服务,我得到了我的服务重复。重复是没有那么糟糕,实际上应该有服务的重复,但服务应该做好自己的工作,当且仅当没有重复的都已经在做同样的工作。我的问题是,内部供水系统检查阉其乳宁看起来对逻辑,因为如果你开始服务,当然它已经乳宁,它是没有意义的检查。服务的方式粘。我想保留副本,如果服务,做的工作就会被杀死,另一个(副本之一)将开始做这项工作,因为没有服务的这样做。是否有任何变通?我怎么能做到这一点?如有事还不清楚,让我知道。


解决方案

 公共类PlayerService延伸服务{    / **单件PlayerService实例。 * /
    私有静态PlayerService _instance = NULL;    @覆盖
    公共无效的onCreate(){
        _instance =这一点;
    }    公共静态布尔isPlayerServiceRunning(){
        返回_instance!= NULL;
    }

I have a service which is used by many application. Developers just start the service and it does its work. If AppA, AppB and AppC start the service I am getting duplicates of my services. Duplicates are not so bad, in fact there should be duplicates of service, but services should do their work if and only if none of duplicates are already doing same job. My problem is, checking inside service wether its runing looks like against logic because if you start service, of course its already runing and it makes no sense to check. Service is by the way STICKY. I want to keep duplicates, if service that does job gets killed, another one (one of duplicates) will start do the job, since none of services doing it. Is there any work around? How could I achieve that? Please if something is unclear, let me know.

解决方案

public class PlayerService extends Service {

    /** The Singleton PlayerService instance. */
    private static PlayerService _instance = null;

    @Override
    public void onCreate() {
        _instance = this;
    }

    public static boolean isPlayerServiceRunning() {
        return _instance != null;
    }

这篇关于如何检查里面的服务是相同的服务已经运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆