首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何知道我的Android应用程序已经升级,以便重置闹钟?

如何知道我的Android应用程序已经升级,以便重置闹钟?
EN

Stack Overflow用户
提问于 2010-01-26 00:59:50
回答 4查看 28.1K关注 0票数 72

我注意到,当设置此警报的应用程序升级时,此警报会被禁用。:是真的吗?

到目前为止,为了知道这是否是我的应用程序的第一次运行,我使用了带有FIRST_RUN密钥的SharedPreferences。如果我找不到这个键,我将启用警报并将FIRST_RUN设置为false,否则我什么也不做。

但我也注意到,这些偏好在应用程序升级之间保持不变!

因此,在升级之后,FIRST_RUN密钥已经是假的,所以当我的警报需要启用时,我什么也不做。

如何处理这样的情况?

提前感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-26 01:03:35

我自己从来没有尝试过,但是如何创建一个侦听ACTION_PACKAGE_REPLACED意图的BroadcastReceiver呢?

我以前也想过这样做,但我不确定这是否存在先有鸡还是先有蛋的问题(例如,意图是否在新升级的应用程序可以接收它之前发送?)。不过,值得一试。

票数 63
EN

Stack Overflow用户

发布于 2010-01-26 02:06:29

丹尼尔·卢的

解决方案:

我需要一个在清单中包含以下行的接收器:

代码语言:javascript
复制
<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是为了防止任何应用程序的任何升级都会触发OnUpgradeReceiver

票数 93
EN

Stack Overflow用户

发布于 2014-02-04 00:35:26

很简单,听一下android.intent.action.MY_PACKAGE_REPLACED ..。如果您的应用程序的新版本已在现有版本上安装,则此INTENT将通知您

注意:此意图可以从API 12开始提供

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2133986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档