2012-05-10 3 views
0

У меня есть служба, которая работает с помощью будильника «Watchdog», который проверяет, работает ли служба, и повторно запускает ее, если это необходимо.Перезапуск и Android-сервис после обновления приложения

Это нормально работает, пока пользователь не обновит приложение из магазина приложений. Предположительно, процесс удаления приложения с телефона и замена пакета аннулирует мои записи AlarmMgr.

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

Возможно, потребуется одно или несколько из следующих элементов.

 <intent-filter> 
      <action android:name="android.intent.action.PACKAGE_CHANGED"/> 
      <action android:name="android.intent.action.PACKAGE_REPLACED"/> 
      <action android:name="android.intent.action.PACKAGE_INSTALL"/> 
     </intent-filter> 

ответ

0

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

0

Пошел на этот вопрос в Google, поэтому подумал, что стоит обновить состояние ответа. Начиная с Honeycomb, теперь есть ACTION_MY_PACKAGE_REPLACED, который отправляется в ваше приложение при его обновлении, которое предназначено для такого типа использования.

В отличие от 2012 года, когда задавался этот вопрос, поддержка Android 2.3 или ниже уже не важна.

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