更新应用程序是否会清除SharedPreferences或删除应用程序设置的闹钟?

6

我已将我的应用发布在Google商店,现在我想要更新它。

但是我希望确保我不会失去存储在我应用程序共享首选项中的数据。我还设置了一些闹钟,在我的应用程序中启动通知,我也不想失去它们。

我不确定应用程序更新如何工作?它是否会重写这些内容?有没有办法在全球发布之前进行测试?

需要提到的是,我在这个版本中所做的更改包括清单中的一些更改:我改变了targetSdkVersionminSdkVersion(原来是minSdk=8,现在我将其改为4,并添加了targetsdk=15),并给我的警报服务(一个意图服务来设置闹钟)赋予了进程名称,但后来决定将其更改,并且现在没有进程名称。

2个回答

9
通常情况下,SharedPreferences(以及其他用户数据)在更新过程中会被保留,但是有时由于一些“未知”的问题,数据可能会丢失,我猜这已经超出了您的控制范围。所以您可以简单地相信SharedPreferences会被保留。
至于闹钟,您是如何设置这些闹钟的?如果您是通过代码设置的话,只要在代码中正确设置就应该是100%正常的。
当然,测试的最佳方式是在将应用程序推向市场之前,在设备上安装已更新的应用程序。首先,您应该在手机上安装您的市场版本应用程序,然后使用市场密钥库在本地计算机上导出您的应用程序,最后,在手机上安装导出的版本(安装程序应通知您进行更新)。您可以检查这些设置是否仍然存在。
在导出时,最重要的是要确保您正在使用与应用程序市场版本相同的密钥库。
希望这能够帮助您。

1
非常感谢。我按照您的建议进行了测试,我的共享首选项和闹钟得以保留。 :) - Marjan
1
由于某些“未知”的问题,数据可能会丢失。这是模棱两可的!有关文档的任何参考资料? Android团队 - Muhammad Babar
@MuhammadBabar,不是的,这是我自己的经验。而且,是的,它是模棱两可的。我太忙了,无法追踪问题是源于系统错误还是我的代码错误,或者其他原因,但有一个用户报告偏好设置丢失了。所以,抱歉,这就是我能说的全部。 - Void Main
@VoidMain 你尝试过通过漏洞报告联系谷歌安卓团队吗? - Muhammad Babar
@VoidMain 如果确实存在这样的问题,我们应该报告并修复它。因为“未知问题”会导致数据丢失,这是非常危险的! - Muhammad Babar
1
@MuhammadBabar,是的,你说得对。但是为了辩护一下,当时我在2011年末时间非常紧张,所以我没有花太多时间研究这个问题。而且现在已经过去3年了,所以这个问题很难再报告了。但是,你联系开发团队的建议确实是正确的。谢谢你的建议。 - Void Main

2

SharedPreferences被存储并将在更新应用程序后继续存在。对于闹钟,我不确定,很抱歉。

为了测试您的更新,只需在设备上安装您的市场版本,设置您的内容(闹铃,sharedprefs)就像普通用户一样,并且只需在手机上安装您要上传到市场的apk文件(签名的apk!)。安装应与用户将获得的更新相同...


@WarrenFaith:如果我想在更新中清除所有以前的数据怎么办?我正在向数据库添加新表。该表不是在代码中创建的,只是在资产中添加了db。所以我想做的是更新清除以前的db并用新的替换它。 - Ashwin
@Ashwin,这与此处的问题无关,但请看一下我在另一个问题的答案的第一部分... 这里也不欢迎重复评论。 - WarrenFaith
@WarrenFaith:我的问题是:“如果我想清除更新中的所有先前数据怎么办?”这基本上就是我的问题。数据可以指Sharedpreference和SQLite DB。无论如何,感谢提供链接。 - Ashwin
@Ashwin,您的问题涉及到数据库。您使用了4次“db”或“table”。无论如何,我希望您已经找到了解决方案。 - WarrenFaith
@WarrenFaith:是的,那只是为了阐述。在第一行中,我已经问了真正的问题 :) - Ashwin
显示剩余3条评论

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