Является ли Android-сервис синглтоном? - PullRequest
0 голосов
/ 10 сентября 2018

Если я запускаю службу в своей основной деятельности, затем выхожу из main и снова создаю main, будет ли на ее место новый экземпляр службы?или это будет тот же экземпляр?или будет два экземпляра?Мне нужно знать, потому что в моем сервисе я создаю уникальный идентификатор каждый раз, когда создается новый сервис.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Если я запускаю службу в своей основной деятельности, затем выхожу из main и снова создаю main, будет ли на ее место новый экземпляр службы?

У вас есть две ситуации, если вашаслужба продолжает работать, новый экземпляр не будет создан, но если ваша служба останавливается (завершает свою работу или система останавливает ее из-за нехватки памяти или других ситуаций), когда вы запускаете ее снова, вы получаете новый экземпляр.

0 голосов
/ 10 сентября 2018

Всякий раз, когда вы звоните startService() или startForegroundService() в Android, платформа проверяет, запущена ли уже эта служба.

Так что, чтобы ответить на ваш вопрос, да.Будет только один экземпляр.

Однако каждый раз, когда вы вызываете startService() или startForegroundService(), будет вызываться метод Сервиса onStartCommand().Это означает, что если у вас есть какая-либо одноразовая инициализация в вашей Службе , которую вы не хотите повторно инициализировать , укажите ее в onCreate().

...