У меня есть служба в приложении для Android, которая должна продолжить прослушивание обновлений местоположения после выхода пользователя из приложения (последствия этого в автономном режиме - это отдельный вопрос).Жизненный цикл службы в Android
Я не уверен, что я правильно понял жизненный цикл сервиса в Android, описанный на этой странице:
http://developer.android.com/reference/android/app/Service.html
Я считаю, если она возвращает START_STICKY в OnStart() метод, то служба будет продолжать работать после выхода основного приложения независимо от того, работает ли служба в своем собственном процессе. Если служба работает в том же процессе, что и остальная часть приложения, и я правильно понял, процесс основного приложения сохраняется в живых после выхода приложения, просто для запуска этой службы. Когда приложение запустится снова, оно будет работать в том же процессе, что и служба, которая все еще работает. Если система становится низкой в памяти, Android может решить убить эту службу.
Во-вторых, я считаю, что вполне нормально запускать приемник местоположения, который прослушивает обновления GPS в том же процессе и действительно тот же поток, что и остальная часть приложения, и он не будет блокироваться при ожидании обновлений с GPS.
Правильно ли я понял?
Я понимаю, что вы приняли ответ, но из любопытства, как ваша служба «прослушивание» для обновления местоположения? – Squonk
Просто используя LocationListener, как описано здесь: http://developer.android.com/training/basics/location/currentlocation.html Являются ли мои мысли по-прежнему правильными? – Froskoy
Для этого вам не нужно настраивать AsyncTask или фоновый поток. Также понятно. Но если вы используете это в службе, андроид O/S/может убить вас, включая сервис и eventlistener. Вот почему использование Intent + IntentService + AlarmManager - лучшая практика. – Timmetje