Нормально ли, что служба уничтожается, когда приложение помещается в фоновый режим (нажата кнопка «домой»)? Если это так, могу ли я переопределить его, комментируя функцию onDestroy(), чтобы служба не была уничтожена? Это хорошая практика для этого.OnDestroy() Вызывается для службы, когда приложение переходит на задний план
ответ
Комментарий к методу onDestroy()
не повлияет на это поведение; класс Service
сохраняет свой жизненный цикл как described here.
Чтобы сохранить Service
, работающий в фоновом режиме, наиболее распространенный подход - использовать постоянное уведомление. Это по дизайну; Android не хочет, чтобы службы, работающие в фоновом режиме, не указали пользователю, что они выполняют какую-либо деятельность и могут разряжать аккумулятор и использовать системные ресурсы.
Это делается путем вызова startForeground()
из Сервиса и передачи уведомлений, которые будут показаны пользователю. More on this here.
В дополнение к этому, другой подход заключается в изменении возвращаемого значения от onStartCommand()
в вашем Сервисе, чтобы предложить «Android», чтобы ваша Служба не была убита или перезапущена, если она была убита; однако это не гарантирует, что ваша Служба будет работать в ситуациях с низкой памятью. More on this here.
Также приятно спросить: что вы делаете, для чего требуется, чтобы Служба выполнялась постоянно в фоновом режиме? Часто есть более эффективные способы решения таких задач.
Благодарим вас за отзыв, im вызов в службе, загружающей данные из Интернета, и пользователь должен быть уведомлен о поступлении новых данных ... точно так же, как приложение для обмена сообщениями –
Вы посмотрели на использование служба, например Google Cloud Messaging (https://developer.android.com/google/gcm/index.html)? Это отличный способ, позволяющий приложению получать уведомления о появлении новых данных, не постоянно обслуживая ресурсоемкую службу. Очень рекомендую посмотреть на такой подход. – dcarr622
сделаю это спасибо. –
- 1. Методы вызывается, когда приложение переходит на задний план
- 2. метод onDestroy вызывается, когда моя активность переводится на задний план
- 3. Пауза Запрос Прослушивание, когда приложение переходит на задний план
- 4. Android, отслеживать, когда приложение переходит на задний план
- 5. Android четкие данные, когда приложение переходит на задний план
- 6. загрузка завершается, когда приложение переходит на задний план
- 7. Загрузка NSURLConnection продолжается, когда приложение переходит на задний план
- 8. Как сохранить GCKCastSession живым, когда приложение переходит на задний план
- 9. Сброс backgroundTimeRemaining, когда приложение переходит на задний план
- 10. Android, как остановить таймер, когда приложение переходит на задний план
- 11. Android-аут-выход, когда приложение переходит на задний план
- 12. android - остановить звук, когда приложение переходит на задний план
- 13. Сетевое соединение теряется, когда приложение переходит на задний план
- 14. звук играет, когда приложение переходит на задний план
- 15. Как определить, когда конкретное приложение Android переходит на задний план?
- 16. AVAudioPlayer не воспроизводится, когда приложение переходит на задний план
- 17. Остановить музыку AVAudioPlayer, когда приложение переходит на задний план
- 18. My View Controller освобождается, когда приложение переходит на задний план
- 19. Приостановить и возобновить UIViewAnimation, когда приложение переходит на задний план
- 20. Продолжайте работать NSOperationQueue, когда приложение переходит на задний план
- 21. Храните видеоролик, когда приложение переходит на задний план
- 22. Обнаружение приложения bb10 переходит на задний план
- 23. анимация UIView не работает, если приложение переходит на задний план
- 24. TCPresenceEvent срабатывает, когда устройство переходит на задний план?
- 25. Как сохранить вспышку, когда активность переходит на задний план
- 26. Продолжающаяся загрузка после того, как приложение переходит на задний план
- 27. Приложение iOS переходит на задний план и имеет проблемы с возвратом на передний план
- 28. Закрыть услугу из библиотеки, только когда все приложение переходит на задний план
- 29. animationControllerForOperation не вызывается после того, как приложение переходит на задний план
- 30. Как начать запуск программы после приложения переходит на задний план?
показать ваш код. Служба не будет уничтожена в таком сценарии –
Начните использовать в качестве переднего плана http://stackoverflow.com/questions/24839655/how-to-use-startforeground/24839801#24839801 –
его огромный код, поэтому это не стандартная команда, которая выполняется, когда приложение переходит на задний план? –