Я разрабатываю приложение, которое проверяет несколько условий во время входящего телефонного звонка. Основными частями приложения являются BroadcastReceiver, прослушивающий Контенты, связанные с состоянием телефона, и локальная Служба, проверяющая условия.
В данный момент служба запускается каждый раз, когда обнаруживается входящий вызов, и останавливается, когда статус телефона возвращается в режим ожидания.
Теперь мне интересно, правильна ли эта процедура и целесообразно ли запускать и останавливать службу, связанную со статусом телефона. Или было бы лучше, чтобы служба работала независимо от состояния телефона и при необходимости связывала / отстегивала от него.
Есть ли какие-либо проблемы с производительностью, о которых мне следует подумать? Возможно, запускать / останавливать службу дороже, чем запускать ее и общаться с ней. Существуют ли передовые практики по внедрению услуг?