Application之属性restoreAnyVersion

来源:互联网 发布:nodejs 获取json key 编辑:程序博客网 时间:2024/06/05 23:30

这个属性是指允许恢复任意版本的备份数据来恢复应用程序的数据。将该属性设置为true,则将允许备份管理器尝试恢复操作,有的时候版本不匹配表明数据是不兼容的,这个时候如果可以恢复到不同版本的数据,那么应用程序将承受很大的风险,所以请谨慎使用此属性!

这个属性必须是布尔值,true或者false!

下面举个例子:

我们写一个应用程序名为project,在Androidmanifest中versionCode写2,说明project的版本号是2.并且我们设置其restoreAnyVersion为false(或者不配置该属性,因为默认为false)。

接下来安装project.apk并执行一次备份工作,至此系统已经对应用程序完成了一次备份。备份之后,我们将project卸载,再修改AndroidManifest中versionCode的值为1,再重新将project安装到手机上。这时候该应用程序版本为1(版本号降低了)。由于版本号降低会影响到恢复功能的执行。备份管理服务检查到备份版本高于当前安装版本,此时Android备份系统就跳过这个应用程序的恢复过程,在日志中提示“no more packages to restore"。

接下来我们再次卸载project,并将AndroidManifest中的restoreAnyVersion的值设为true,再次重新安装该应用程序,在日志中我们可以看到Android备份系统发现了原来备份的数据(版本为2),但是安装的应用程序为1,这时备份系统会去检查师傅哦设置了restoreAnyVersion=true,如果已经进行了这样子的设置,那么Android系统就依然进行一次恢复操作。


上述讲的是从高版本到低版本的过程,会随着restoreAnyVersion不同而改变。

但是如果是从低版本到高版本呢?

无论restoreAnyVersion设置为什么,因为程序的版本不断升高,Android备份系统都会为其进行一次备份恢复操作。

0 0
原创粉丝点击