可能重复:
How to know my Android application has been upgraded in order to reset an alarm?
当我的android应用程序只更新时,我需要运行特定的代码(我特别想重新安排警报)。
他们对so做了广泛的搜索,我发现人们建议使用sharedpreferences。我不认为这是正确的,因为sharedpreferences可以在重启时删除,或者只需清除缓存。这意味着当我的应用程序被更新时,共享的首选项可能不存在,我可能不知道它是一个更新还是仅仅是一个新的安装(或者更糟糕的是重启)。
那么,还有别的办法吗?可能是某种意图或某种执行的方法(有点像onupgrade for sqlite)。
请告知。非常感谢你
最佳答案
onupgrade for sqlite只需检查数据库是否存在,那么它的版本是什么。如果当前数据库的版本低于apk中的版本,它将清除数据库并用新数据库更新数据库。
同样,如果清除应用程序缓存。包括数据库在内的所有文件都将被清除
同样,您可以在应用程序中实现:
比如在你的应用程序中有一个静态的public int version=1000;。在创建应用程序时,检查sharedpreferences是否包含版本(即使不存在sp),它将返回saved或default方法。
如果sp version的值if小于代码中的当前版本。使用您想要使用的更新函数。
如果用户卸载并重新安装了应用程序,那么您也可能希望再次注册您的呼叫。