我正在编写一个android应用程序,其中包含几个(确切地说是4个)服务。
每个服务都有一个静态布尔字段,标签为'running'。当服务被创建时,它被设置为true,当服务被销毁时,它被设置为false。
每个服务也有一个静态方法标记为'isRunning()',简单地返回'running'
目前,我在所有4个服务中都有相同的代码来提供此功能。理想情况下,代码应该放在一个地方。如何才能做到这一点?一个接口?抽象类?既不?
(我认为这个字段和方法是静态的,对答案有限制)
如果方法必须是静态的并且在所涉及的类上可用,那么它们必须属于单个类;没有别的办法。但是也许你可以有一个Class -> boolean
的静态地图来跟踪在某个中心位置运行的服务;当服务启动时,它通过为此调用(单个)静态方法来在该映射中设置适当的值。然后,当需要知道ServiceClass
是否正在运行时,它们使用ServiceClass.class
作为键查询该映射。听起来好吗?