6

我创建了一个应用程序,提醒人们按时服用药物。每次我在 Google Play 上放置一个新的 APK 后,我都会收到很多抱怨警报不再起作用。只有在用户启动应用程序(或重新启动)后,它才会再次开始工作。帮助!

4

3 回答 3

9

查看ACTION_MY_PACKAGE_REPLACED意图操作(在蜂窝和向上)。

您应该能够在清单中为它注册一个广播接收器,然后可以重新安排您的警报。

于 2013-07-28T14:44:03.250 回答
2

升级时不会取消预定的警报。在撰写本文时,我已针对 Android 版本 2.2 和 4.3 以及最新的 Google Play 进行了验证。

您必须确保您的新版本可以处理任何旧版本的所有待处理意图。这意味着:

  • 清单中的相同目标定义(广播接收器或服务)
  • 相同意图的“合同”:动作、额外内容等。
于 2013-08-02T17:09:33.873 回答
0

我的应用运行 android.intent.action.MY_PACKAGE_REPLACED 的接收器。当接收器收到 ACTION_MY_PACKAGE_REPLACED Intent 时,它会删除所有以前的警报并设置新警报(因为更新可能会更改警报时间)。

经过测试,我发现:

  • 在开发中,使用“adb install -r app.apk”直接部署到设备,更新的应用程序在我手动启动应用程序之前不会收到警报。
  • 通过 Google Play 商店更新后,更新后的应用程序在更新完成后无需与应用程序进行任何交互即可获得警报。

我希望谷歌能把这些东西弄清楚——这是一个非常非常高风险的测试,因为如果更新后的应用程序没有收到警报,它就会破坏我所有用户的应用程序!但我已经尝试了我能想到的所有其他方法,并且我 99.9% 确信它必须工作,或者如果更新禁用它们,任何应用程序都信任它的任何警报将如何被触发。

于 2022-01-20T18:30:55.113 回答