2015-05-16 6 views
2

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

Edit-1: Как один из ответа предположить, если приложение должно быть возобновлено снова запустить службу, то как же приложение сигнализации отлично работает после обновления без перезапуска (я считаю, что использования фоновой службы, чтобы начать тревогу)?

ответ

4

Будет ли убито это фоновое служение?

Будет убит.

Пользователь должен снова открыть приложение, чтобы снова зарегистрировать фоновое обслуживание или приложение получит обратный вызов при обновлении?

Это зависит. В основном это требует активности пользователя, поскольку приложение не перезапускается автоматически после обновления. Но если вы нацеливаете API 12 или выше (что вы должны сейчас), вы можете попытаться использовать широковещательную передачу ACTION_MY_PACKAGE_REPLACED. Согласно документу:

Broadcast Action: новая версия приложения была установлена ​​поверх существующего. Это отправляется только в приложение , которое было заменено. Он не содержит никаких дополнительных данных; чтобы получить , просто используйте фильтр намерений для этого действия.

так что вы можете сделать вы запихнуть либо в BroadcastReceiver спускового что-то, как только вы получите эту передачу.

+0

Извините за простой вопрос, но как приложение тревоги запускает будильник после обновления без какой-либо активности пользователя? – kamalkishor1991

+0

Всё зависит. Я отредактировал свой ответ –

0

Служба будет убита и ее необходимо будет запустить снова.

Служба не работает на отдельном процессе. Сам объект службы не подразумевает, что он работает в своем собственном процессе; если не указано иное, он работает в том же процессе, что и приложение, в котором оно входит.

Поэтому, когда приложение обновляется, приложение отправляется в состояние остановки.

Вы можете проверить это. Из магазина воспроизведения Google инициируйте обновление для приложения (которое имеет сервис, например Whatsapp). Откройте приложение и дождитесь его завершения. Он останавливается. вы можете проверить внутренние запущенные процессы. Подключите телефон к DDMS. Проверьте процессы.