我正在编写一个包含多个(确切地说是4个)服务的Android应用程序。
每个服务都有一个标记为“running”的静态布尔字段。创建服务时设置为true,销毁时设置为false。
每个服务还有一个标记为'isRunning()'的静态方法,只返回'running'
目前,我在所有4项服务中都有相同的代码来提供此功能。理想情况下,代码应位于一个位置。怎么能实现这一目标?一个界面?一个抽象类?既不?
(我认为这个领域和方法在答案上是静态的限制这一事实)
答案 0 :(得分:1)
如果方法必须是静态的并且在所涉及的类上可用,那么它们必须属于各个类;没办法解决它。但也许你可以有一个Class -> boolean
的静态地图,它可以跟踪某个中心位置的运行服务;当服务启动时,它通过为此目的调用(单个)静态方法在该映射中设置适当的值。然后,当任何事情需要知道ServiceClass
是否正在运行时,他们会使用ServiceClass.class
作为关键字来查询该地图。听起来不错?