我有file A
,这是共享首选项。授权详细信息存储在file A
中。
有些笔记存储在file B
中。当我更新应用版本时,我要擦除file A
,但保留file B
。我想擦除文件A,因为我可能想要更改encription mechanizm以提高安全性。但文件B中的注释可能包含重要且长信息,因此我需要在版本之间保存它们。
文件B
Context.MODE_WORLD_WRITEABLE
答案 0 :(得分:1)
我会在资源文件中存储一个版本号,就像这样
<string name="app_version">x.x.x</string>
然后将该版本保存到SharedPreferences
(如果它尚不存在)。然后,当您启动应用程序时,将您的首选项版本与资源版本进行比较(您将在每次发布之前更新)。如果它们不匹配,那么您的应用程序已更新,则可以执行文件修改。
有一个例外,用户可以从操作系统调用清除数据。如果发生这种情况,您的代码将在应用程序打开时再次执行,因为所有首选项都将被清除,但无法阻止该情况。
希望这有帮助