我找到了两个可能的解决方案:备份管理器和Google Drive。我认为备份管理器是最简单的解决方案,并且符合我的需求,但也许我错了:
注意:备份服务不适用于将应用程序数据与其他客户端同步或保存您想要在正常应用程序生命周期内访问的数据。您不能按需读取或写入备份数据,并且除了通过备份管理器提供的API之外,无法以任何方式访问它。
Note: The backup transport provided by Android Backup Service is not guaranteed to be available on all Android-powered devices that support backup. Some devices might support backup using a different transport, some devices might not support backup at all, and there is no way for your application to know what transport is used on the device.
Since I'm storing this information in SharedPreferences I started my implementation by extending BackupAgentHelper as Google advises (http://developer.android.com/guide/topics/data/backup.html#BackupAgentHelper).
...each time the user changes some data, your app should call dataChanged(), which adds a backup request to the Backup Manager queue.
So, each time I change data, save or remove a bookmark for example, I call:
BackupManager.dataChanged(C.PROJECT_PATH);
When my applications starts I call:
contentBackupManager.requestRestore(new RestoreObserver() {})
Everything is setup and AndroidManifest.xml too.
Unfortunately requestRestore is returning != 0 (error) and my BackupAngent (extends BackupAgentHelper) onBackup and onRestore aren't being called (onCreate is). But, once again:
A backup request does not result in an immediate call to your onBackup() method. Instead, the Backup Manager waits for an appropriate time, then performs backup for all applications that have requested a backup since the last backup was performed.
Does this means I'll only find my answer in Google Drive?