Android-приложение и его сервис убивают после открытия некоторых приложений
Я разрабатываю приложение для отслеживания местоположения пользователей, когда они нажимают кнопку Пуск. Я реализовал сервис для записи местоположения с помощью LocationListener, и он работает хорошо, но я провел серьезное тестирование, и когда я открываю некоторые приложения, мое приложение и сервис случайно убиваются андроидом.
Но я скачал приложение под названием Wikiloc и провел один и тот же тяжелый тест, открывая несколько приложений, это приложение никогда не убивалось, и я вижу, что приложение создает уведомление, которое нельзя отменить. Может ли это быть связано с тем, что приложение никогда не убивается системой?
Как можно добиться этого в моем приложении? Должен ли я сделать трюк с уведомлением? Если да, то как это реализовано?
1 ответ
Посмотрите документацию по сервису Android startForeground(int, Notification)
здесь Согласно документации:
Сделайте эту службу запущенной на переднем плане, предоставляя текущее уведомление, которое будет показано пользователю в этом состоянии. По умолчанию сервисы являются фоновыми, что означает, что если системе необходимо убить их, чтобы освободить больше памяти (например, для отображения большой страницы в веб-браузере), их можно убить без особого вреда. Вы можете установить этот флаг, если уничтожение вашего сервиса будет иметь разрушительные последствия для пользователя, например, если ваш сервис выполняет воспроизведение фоновой музыки, чтобы пользователь мог заметить, что его музыка перестала воспроизводиться.
Ты звонишь startForeground
внутри вашего сервиса onCreate
метод.