Cristian在这里说:当用户安装更新时,您的应用程序数据将保留。
但是它必须具有相同的功能,package name
才能检测为先前App的更新。
警告Android用户的EboMike应用程序更新可能会导致旧应用程序版本丢失数据?说:
坦率地说,由于升级而丢失数据是不可接受的。
编辑:
通常,在更新过程中将保留SharedPreferences(以及其他用户数据),但是有时由于某些“未知”问题,数据可能会丢失,我想这是您无法控制的。因此,您可以简单地相信SharedPreferences将被保留(请参阅此处)。
因此,如果要避免在升级过程中清除用户数据,则必须将主数据保存在外部存储设备(可以是可移动存储介质,例如SD卡或内部不可移动存储设备)中,而不必对于您的应用程序是私有的。或者至少在升级之前不让用户备份数据。然后在您的(升级的)应用程序的首次运行中,检查外部存储中是否有备份文件。
如果您想知道升级应用程序必须/会发生什么?,我没有什么好介绍的this.It是复杂的和相对有Android Security
,Application signing
,copy protection
和其他topics.I意味着,如果你在任何上述领域改变你的应用程序的状态,它会导致不同的结果。
例如,如果您CHANGED COPY PROTECTION FROM ON to OFF OR OFF to ON
将更新您的应用程序,但会导致所有共享首选项丢失,则无法进行文件访问...。
尽管您必须小心一些条件,但会导致您的新Appbeing considered
作为先前App的更新(请参阅无法更改的内容)。
另外,您还必须注意自己的代码,这可能是导致删除数据库数据的原因(请参阅使用预加载的SQLite更新应用程序)。
但最终,如果小心一点,您可以说:
更新过程仅替换apk文件(因此包含其中的内容,例如drawables等),并且不会更改数据库,sharedpreferences和运行时生成的任何其他文件(可能在这种情况下,新App安装为等于先前应用程序的UID的UID)。
您可以查看以下页面以了解更多详细信息:
救命!?在市场上更新我们的应用程序会删除保存的SharedPreferences。
市场复制保护在更新后完全破坏了文件访问权限
有人可以解释应用程序更新过程吗?