我有file A
,这是共享首选项。授权详细信息存储在file A
中。一些音符存储在file B
中。当我更新应用程序的版本时,我希望擦除file A
,但保留file B
。我想擦除文件A,因为我可能想更改加密机制以提高安全性。但是文件B中的注释可能有重要的长信息,所以我需要在不同版本之间保存它们。文件B
Context.MODE_WORLD_WRITEABLE
我会在资源文件中存储一个版本号,就像这样
<string name="app_version">x.x.x</string>
然后保存该版本到SharedPreferences
,如果它还不存在。然后,当你启动应用程序时,将你的首选版本与资源版本进行比较(你将在每次发布前更新)。如果它们不匹配,那么你的应用程序已经更新,然后你可以执行你的文件修改。
有一个例外,用户可以从操作系统调用Clear data。如果发生这种情况,你的代码将再次执行时,应用程序打开,因为所有的首选项将被清除,但没有办法防止这种情况。
希望能有所帮助