当前位置: 首页 > 知识库问答 >
问题:

意向服务单例

严开宇
2023-03-14

因此,home活动将运行并停止ScreenLockService服务,该服务将运行并停止Listener服务。

我的问题是home活动创建了ScreenLockService的多个实例,该活动还创建了Listener的多个实例。

因此,我希望将这两个intentservices作为singletons运行,但我不确定如何这样做。

如果有必要,我可以发布一些我所拥有的示例代码,但我真正寻找的是一个操作方法。

共有1个答案

辛才俊
2023-03-14

实现单例模式的基本思想是创建一个私有的[或受保护的]构造函数(这意味着它不能从类外部访问)。该类还需要一个它自己类型的私有字段(例如private MyClass myobj;)接下来需要的是类似newinstance()的公共静态方法,如果类的实例不为null,则通过myobj返回它,如果为null,则实例化它:

public static MyClass newInstance(){
    if (myObj == null) {
         myObj = new MyClass();
    }
return myObj;
}

当然,它可以有更复杂的实现(构造函数不必没有参数)。

现在,这将始终只创建所需类的一个实例。您所需要做的就是始终在需要使用类的地方调用方法newinstance。如果已经实例化了,它将给出旧的实例,如果没有,它将创建它。

 类似资料:
  • 我是android编程的新手,所以这些问题可能是愚蠢的。我读了一些书,但不能完全得到答案。 我有一个广播接收器,从一个服务注册了一些意图- 由于我移除了“setforeground”调用以保持我的服务运行(因为我不想要状态栏图标,我想知道我是否懒惰使用这种方法),我的服务现在将定期关闭,通常在短时间后再次启动(但有时我看到它是5分钟)。

  • 但是这个值在WallpaperService中是无法达到的。 当前服务如下所示:

  • 对hi-nginx-java而言,服务即URI指向的实体类。因为URI与Class之间的映射关系,所以所谓面向服务即提供URI/a/b/c指向的Classa.b.c。 比如,对表websites提供CRUD服务.如果规划的URI包括:/website/info,/website/insert,/website/update,/website/delete,/website/list,那么对应的Cl

  • 假定用户需要创建的Web服务 服务名称 版本号 监听地址 网络类型 读取请求数据超时 写入响应数据超时 myapp 1.0 0.0.0.0:8080 http 0 0 无版本号的服务 func main() { ... app := faygo.New("myapp") ... 注:相应的配置文件为config/myapp.ini 含版本号的服务 func main() { ...

  • 问题 你想通过网络提供持续的服务,与客户保持持续的联系。 解决方案 创建一个双向 TCP 服务器。 在 Node.js 中 net = require 'net' domain = 'localhost' port = 9001 server = net.createServer (socket) -> console.log "New connection from #{socket

  • 一面 自我介绍 Java线程有哪些状态,怎么流转的 RPC通讯过程 怎么处理消息边界 MySQL事务隔离级别 MySQL一致性视图 Redis可以存图片吗 对服务网格的理解 Docker和虚拟机的区别 Docker网络是怎么通讯的 怎么接触开源的,开源对你的影响 简单的Linux命令和shell愈发 Java类加载过程 双亲委派模型 算法题:二叉树路径和 二面 自我介绍 Dubbo贡献了啥 美团实