Android自动备份-获取上次备份时间
我正在我的应用程序中使用Android自动备份功能。这些是我的清单设置Android自动备份-获取上次备份时间,android,android-backup-service,backup-agent,Android,Android Backup Service,Backup Agent,我正在我的应用程序中使用Android自动备份功能。这些是我的清单设置 <application android:allowBackup="true" android:backupAgent=".BackupAgentCustom" android:fullBackupContent="@xml/backup_rules" android:fullBackupOnly="true"
<application
android:allowBackup="true"
android:backupAgent=".BackupAgentCustom"
android:fullBackupContent="@xml/backup_rules"
android:fullBackupOnly="true"
如果我从命令行或设备上的android备份设置启动备份过程,一切都会正常工作。也就是说,我可以从SharedReferences获得正确的上次备份时间
但在我的物理设备上,它不工作。我在我的物理设备上安装了带有释放密钥的应用程序,一直等到第二天系统启动备份过程。
android系统设置中的备份时间和共享首选项中的值不一样。似乎SharedReferences中的值未更新
我的问题。如何获取应用程序的上次备份时间?使用提交不应用。异步将写入应用到磁盘。提交是即时的。你需要马上写下来。如果应用程序的另一部分需要数据,apply就足够了,因为它首先将数据写入内存中的共享首选项。但备份是由单独的应用程序完成的,因此它无法访问内存中的数据。使用提交不应用。异步将写入应用到磁盘。提交是即时的。你需要马上写下来。如果应用程序的另一部分需要数据,apply就足够了,因为它首先将数据写入内存中的共享首选项。但是备份是由单独的应用程序完成的,因此它无法访问内存中的数据。您是否在备份规则.xml中排除了SharedRef
如果你不排除,我不会更新。
我找到了一个,外面的不多,可能会对你有帮助
注:
如果还发现了另一篇信息丰富的决策文章
PS:apply性能更好,速度更快。您是否在备份规则.xml中排除了SharedRef
如果你不排除,我不会更新。
我找到了一个,外面的不多,可能会对你有帮助
注:
如果还发现了另一篇信息丰富的决策文章
PS:apply性能更好,速度更快。我将apply更改为commit。还是一样。共享首选项中的值未更新。我已将应用更改为提交。还是一样。共享首选项中的值未更新。请检查。我更新了我的答案。希望对你有帮助。我更新了我的答案。希望有帮助。
@Override
public void onFullBackup(FullBackupDataOutput data) throws IOException {
Log.d(TAG, "onFullBackup !!");
mSharedPreferences.edit().putLong(PREF_KEY_LAST_BACKUP_TIME, System.currentTimeMillis()).apply();
super.onFullBackup(data);
}
<full-backup-content>
<exclude
domain="sharedpref"
path="com.yourapp.backup.PREF_KEY_LAST_BACKUP_TIME.xml
</full-backup-content>