Как знать, что мое заявление Android было обновлено, чтобы перезагрузить тревогу?

Я заметил, что тревога отключена, когда применение, которое поставило этот будильник, было модернизировано. Это верно?

До сих пор я использовал SharedPreferences с a FIRST_RUN ключ, чтобы знать, является ли это первый показ моего заявления. Если я не нахожу этот ключ, я позволяю тревогу и устанавливаю FIRST_RUN к ложному еще я ничего не делаю.

Но я заметил также, что эти предпочтения остаются неповрежденными между модернизацией приложения!

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

Как обращаться с таким случаем?

Заранее спасибо

67
задан tbruyelle 25 January 2010 в 17:57
поделиться

2 ответа

Я никогда не пробовал это сам, но как насчет создания , который слушает , который слушает Action_package_replace actent?

Я думал о том, чтобы попробовать это раньше, но я «Не уверена, что есть проблема с курицей и яйцом или нет) или нет (например, намерение отправлено до того, как новое обновленное приложение может его получить?). Стоит попробовать, хотя.

58
ответ дан 24 November 2019 в 14:28
поделиться

Решение Даниэля Лью:

нужен приемник со следующими линиями в манифесте:

<receiver android:name=".OnUpgradeReceiver">
  <intent-filter>
    <action android:name="android.intent.action.PACKAGE_REPLACED" />
    <data android:scheme="package" android:path="your.app.package" />
  </intent-filter>
</receiver>

Android: PATH используется для предотвращения OnupGradeReiver , который должен быть вызван любым модернизом любое приложение.

89
ответ дан 24 November 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: