наследование статических методов и полей - PullRequest
1 голос
/ 19 августа 2011

Я пишу приложение для Android, которое содержит несколько (4, если быть точным) Сервисов.

Каждый сервис имеет статическое логическое поле с надписью «выполняется».При создании службы устанавливается значение true, а при уничтожении устанавливается значение false.

У каждой службы также есть статический метод, помеченный как isRunning (), который просто возвращает «выполняется»

В настоящее время у меня есть идентичный код во всех 4 сервисах для обеспечения этой функциональности.В идеале код должен находиться в одном месте.Как этого достичь?Интерфейс?абстрактный класс?ни?

(я думаю, тот факт, что это поле и метод являются статическими ограничениями места для ответа)

1 Ответ

1 голос
/ 19 августа 2011

Если методы должны быть статическими и доступными для участвующих классов, то они должны принадлежать отдельным классам; никак не обойтись. Но, возможно, у вас может быть статическая карта Class -> boolean, которая отслеживает запущенные службы в каком-то центральном месте; Когда служба запускается, она устанавливает соответствующее значение в этой карте, вызывая (одиночный) статический метод для этой цели. Затем, когда кому-либо нужно узнать, работает ли ServiceClass, они запрашивают эту карту, используя ServiceClass.class в качестве ключа. Звучит хорошо?

...