#android #android-intent #android-service #android-location #android-lifecycle
#Android #android-намерение #android-сервис #android-location #android-жизненный цикл
Вопрос:
Я использую IntentService для прослушивания обновлений местоположения GPS, поэтому он запустится, когда пользователь завершит действие. IS отправляет местоположение в сообщении обработчику действия.
Проблема в том, что когда пользователь нажимает кнопку «Остановить отслеживание», уведомление в строке состояния с надписью «отслеживание …» все еще присутствует, потому что оно создано в IntentService. Поэтому я переопределил onDestory (), чтобы я мог вызывать:
mNotificationManager.cancel(TRACKING);
Но проблема в том, что когда я реализую onDestroy (), он вызывается сразу после onHandleIntent . Если я удалю свой код переопределения onDestroy (), то он вызывается не сразу и работает нормально, отправляя местоположения обратно в действие, которое будет отображаться на экране.
Есть идеи, почему onDestroy () вызывается немедленно, если я его реализую, но не если я этого не делаю?
Я здесь в замешательстве.
Спасибо всем,
Бесконечный фурор
Ответ №1:
Хорошо, теперь я разобрался с этим, я не должен был использовать IntentService, вместо этого использовал Service и поместил всю функциональность в onStartCommand (), и теперь все работает.
Извините всех, что потратили ваше время :-/
Бесконечный фурор
Комментарии:
1. Здесь нет отходов, возможно, кто-то совершает ту же ошибку и находит решение в вашем ответе.