Мне нужна служба, которая может работать в фоновом режиме до тех пор, пока я не остановлюсь, даже если компонент, который начал ее, будет уничтожен, а также позволит привязать к действию. Как это возможно?
В соответствии с документом связанных сервисов, связанных с orroid, существует три способа создания связанного сервиса
- Расширение класса Binder.
- Использование Messenger.
- Использование AIDL.
Я создал связанную службу с помощью мессенджера (2-й метод). Активность связывается с сервисом в его методе onStart() и отвязывается в методе onStop(). Двухсторонняя передача сообщений (между активностью и сервисом) работает правильно. Но проблема в том, что когда действие отвлекает сервис, служба уничтожается. Но я хочу службу, которая может работать бесконечно.
Возможно, как android Руководство для разработчиков служб - "Хотя эта документация обычно обсуждает эти два типа услуг отдельно, ваша служба может работать в обоих направлениях - она может быть запущена (для запуска на неопределенный срок), а также разрешить привязку. Это просто вопрос о том, реализуете ли вы несколько методов обратного вызова: onStartCommand(), чтобы позволить компонентам запускать его и onBind(), чтобы разрешить привязку."
Я также реализую метод onStartCommand() в сервисе и возвращаю START_STICKY, но он никогда не вызывается. Рассматривая обратные вызовы с ограниченным сроком службы в dev-руководстве, не существует метода обратного вызова onStartCommand(). Тогда как можно запустить сервис до тех пор, пока мы не остановимся и не разрешим привязку?
Я использую платформу eclipse в Fedora 15 OS.
Любая помощь.....