Android应用程序中的共享首选项在用户更新应用程序时是否会被删除?

35

如果我在我的Android应用程序中使用共享首选项存储一些用户设置和信息,然后更新市场上的应用程序,那么这些设置会在应用更新时被擦除吗?

2个回答

38

不,Shared Preferences 将保持不变。


21
这并不是什么个人恩怨,虽然测试应该是解决问题的最终目标,但对于像我这样的人来说,能够进行简单搜索并快速得到答案是很好的。我之所以这样说,是因为作为一名新手,这种问题会在我编程时浮现。现在,我可以放心地继续前进而不用担心那个问题,但仍应该对所有东西进行测试。 - dell116
1
这很容易,但你必须开另一个问题来问。 - Cristian
14
像这样的小问题非常有价值。我将我的问题输入谷歌搜索,并在约3秒钟内找到了这篇文章,从而得到了相同问题的答案。 - Louis Sayers
@Cristian StackOverflow 为我节省了很多开发时间,因为有了像这样简单问题的答案。 - theblang
另外注意:确保升级后共享偏好设置的名称相同!我在不同版本之间使用了不同的名称,因此新版本无法获取先前版本保存的偏好设置...浪费了整个上午来调试这个问题... :-( - henrykodev
显示剩余3条评论

1
为了简单回答:在正常情况下不会
更新过程只替换apk文件(例如drawables等内容),不会更改数据库、sharedpreferences和任何其他在运行时生成的文件(可能在这种情况下,新应用程序将使用与先前应用程序相同的UID安装)。


但是根据thread,似乎有一些情况下可能会丢失数据。比如将复制保护从开启改为关闭或者从关闭改为开启。
引用回答:

事实证明,当我们发布更新时,复制保护被关闭了,但是在我们最初的发布中,它是开启的。这导致我们所有的共享首选项都丢失了,我们无法再创建私有数据文件,游戏开始随机崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接