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"

我正在我的应用程序中使用Android自动备份功能。这些是我的清单设置

<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>