-1

У меня есть сомнение в том, что если я запустил периодическую службу с помощью диспетчера аварийных сигналов и запустил сервис из метода onCreate активности. Как я могу предотвратить запуск службы несколько раз, если эта активность запускается снова и снова.Службы периодического фонового изображения Android

+0

Вы можете показать код? – AADProgramming

ответ

0

Предполагая, что вы создаете нормальную Service (а не в IntentService), в соответствии с Android Servicedocumentation, когда приложение вызывает startService вызова, услуга будет экземпляр и начала (создание процесса для него, если это необходимо).

Кроме того, если он работает, он остается включенным.

Так, выражаясь простыми словами,

Жизненный цикл сервиса «Started» не зависит от жизненного цикла деятельности, который начал эту услугу. Это справедливо независимо погоды и работают в одном процессе или различных процессах

Так что даже если ваш Activity может быть получение созданы несколько раз, и если Service ранее созданный еще работают, то объект сервиса, который уже существует желание быть повторно использован.

Однако, если есть вызов startService() из onCreate() в качестве Activity, это будет вызывать каждый раз onStartCommand().

Таким образом, вы должны убедиться, что у вас есть соответствующий код/​​логику для обработки нескольких вызовов из onStartCommand()

0

Насколько я понял, вы должны сделать что-то либо OnCreate/OnStart и OnStop или onResume и onPaused. Сделав что-то, я хочу сказать, что в onCreate создайте то, что вам нужно, диспетчер аварийных сообщений и т. Д., А затем в onStart вы можете запустить службу, а в onStop вы остановите службу или отмените ее, если вы хотите использовать функцию переднего плана. или в onResume или onStop. Посмотрите здесь:
https://github.com/toaderandrei/live_tracking/blob/master/app/src/main/java/com/ant/track/activities/ServiceConnectActivity.java.
Это приложение для отслеживания, основанное на приложении MyTracks от Google.

Смежные вопросы