Как перезапустить службу переднего плана после обновления приложения в Android Oreo? - PullRequest
0 голосов
/ 09 июня 2018

Нам нужно перезапустить службу переднего плана нашего приложения после автоматического обновления приложения из Google Play.Для SDK <26 мы зарегистрировали получателя на actoin PACKAGE_REPLACED, и все работало нормально.Как мы можем сделать то же самое в SDK 26, если неявные намерения запрещены?Спасибо. </p>

1 Ответ

0 голосов
/ 10 июня 2018

Во-первых, не все неявные трансляции запрещены.Существует белый список .

Второй, ACTION_MY_PACKAGE_CHANGED - это явная трансляция, отправленная только вашему приложению.Цитируя документацию :

Приложения, предназначенные для Android 8.0 или выше, больше не могут регистрировать приемники широковещания для неявных трансляций в своем манифесте.Неявная трансляция - это трансляция, которая не предназначена специально для этого приложения.Например, ACTION_PACKAGE_REPLACED - это неявная широковещательная рассылка, поскольку она отправляется всем зарегистрированным слушателям, давая им знать, что какой-то пакет на устройстве был заменен.Однако ACTION_MY_PACKAGE_REPLACED не является неявной трансляцией, поскольку она отправляется только приложению, пакет которого был заменен, независимо от того, сколько других приложений зарегистрировали прослушиватели для этой трансляции.

Итак, вы должны иметь возможностьзарегистрироваться на ACTION_MY_PACKAGE_REPLACED и перезапустить там свой сервис.

...