Как иметь несколько экземпляров службы в Android - PullRequest
8 голосов
/ 26 марта 2012

Можем ли мы иметь несколько экземпляров Сервиса в Android?Я хочу услугу, которая может заставить телефон молчать в определенное время, и я хочу повторно использовать эту услугу, чтобы перевести телефон в режим вибрации в определенное время.Таким образом, если я могу запустить службу несколько раз, нет необходимости создавать другую службу для переключения телефона в режим вибрации.Также, если мы можем запустить несколько экземпляров, объясните, как это остановить.Любая подсказка кода очень поможет.

Ответы [ 3 ]

26 голосов
/ 26 марта 2012

Можем ли мы иметь несколько экземпляров Сервиса в Android?

Нет.Вы можете иметь несколько подклассов Service, но любой данный подкласс Service будет иметь ровно 0 или 1 экземпляр в любой данный момент.

Я хочу услугу, которая может заставить телефон замолчать наопределенное время, и я хочу повторно использовать эту услугу, чтобы перевести телефон в режим вибрации в определенное время.

Вы не должны использовать службу для всего этого.Используйте AlarmManager и BroadcastReceiver, пожалуйста.

2 голосов
/ 26 марта 2012

Ваш вопрос не совсем имеет смысла. Похоже, вы хотите, чтобы несколько экземпляров одного и того же сервиса работали и выполняли разные действия одновременно. Но ваш вопрос в основном зависит от того, что сервисы не должны делать что-то в течение длительного времени. Вместо этого, что должно произойти, это то, что они получают намерение, возможно, порождают нить или что-то, а затем перестают болтаться. Помните, что служба по-прежнему работает в главном потоке, она не является фоновой, поэтому в любом случае вам не следует выполнять там долго выполняемые действия. Возможно, вы захотите взглянуть на IntentService, который координирует свою деятельность с использованием намерений, которые контролируют то, что должно происходить.

2 голосов
/ 26 марта 2012

Я не думаю, что услуга может быть использована для такой цели.Сервис должен предоставлять некоторую функциональность, но только одно значение, а не для нескольких разных целей.Для этого лучше создать дополнительный сервис, чтобы код был простым и понятным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...