4

可能重复:
如何知道我的 Android 应用程序已升级以重置警报?

当我的 android 应用程序仅更新时,我需要运行某个代码(我特别想重新安排警报)。

对 SO 进行了广泛的搜索,我发现人们建议使用 SharedPreferences。我不认为这是正确的,因为 sharedPreferences 可以在重新启动或简单地清除缓存时被删除。这意味着当我的应用程序更新时,共享首选项可能不存在,我可能不知道它是更新还是只是全新安装(或更糟糕的是重新启动)。

那么,还有其他方法吗?也许是某种意图或某种执行的方法(有点像 sqlite 的 onUpgrade )。

请指教 。非常感谢

4

2 回答 2

1

SharedPreferences 是最好的方法。除了您所描述的之外,如果用户卸载并再次安装,它将被清除。如果这对您来说还不够好,您需要将最后安装的版本保存在服务器上,但这意味着您无法在离线时运行测试。

于 2013-01-29T06:48:42.763 回答
0

sqlite 的 onUpgrade 只需检查数据库是否存在,然后它的版本是什么。如果当前数据库的版本低于 APK 中的版本,它将清除数据库并用新数据库更新数据库。同样,如果您清除应用程序缓存。包括数据库在内的所有文件都将被清除

同样,您可以在您的应用程序中实现:

就像有一个静态的公共 int 版本 = 1000; 在您的应用程序中。在创建应用程序时检查 SharedPreferences 是否包含版本(即使 SP 不存在),它将返回已保存或默认方法。

如果 SP 版本的值小于代码中的当前版本。使用您打算使用的更新功能。

如果用户卸载并重新安装了该应用程序,那么您可能也想再次注册您的通话。

于 2013-01-29T06:56:51.430 回答