可能重复:
How to know my Android application has been upgraded in order to reset an alarm?
当我的Android应用程序只更新时我需要运行某个代码(我特意想重新安排闹钟)。
对SO进行了广泛的搜索,我发现人们建议使用SharedPreferences。我不认为这是正确的,因为sharedPreferences可以在重启时删除或只是清除缓存。这意味着当我的应用程序更新时,共享首选项可能不存在,我可能不知道它是更新还是只是全新安装(甚至更糟糕的重启)。
那么,还有其他方法吗?也许某种意图或某种方法执行(有点像onUpgrade for sqlite)。
请指教。非常感谢你
答案 0 :(得分:1)
SharedPreferences是最好的方法。除了您所描述的内容之外,如果用户再次卸载并重新安装,它将被清除。如果这对您来说不够好,则需要将最后安装的版本保存在服务器上,但这意味着您无法在离线时运行测试。
答案 1 :(得分:0)
onUpgrade for sqlite只需检查数据库是否存在,然后是什么版本。如果当前数据库的版本低于APK中的版本,它将清除数据库并使用新数据库更新数据库。 同样,如果清除应用程序缓存。包括数据库在内的所有文件都将被清除
同样,您可以在应用程序中实现:
喜欢有一个静态的public int version = 1000;在你的应用程序中在创建检查时,如果SharedPreferences包含版本(即使SP不存在),它将返回已保存或默认方法。
如果SP版本的值小于代码中的当前版本。使用您打算使用的更新功能。
如果用户卸载并重新安装了应用程序,那么您可能还想再次注册您的电话。