0

我已完成以下操作以使 SQLite 数据库备份/恢复正常工作。

(1) 从谷歌获得注册。

[ http://developer.android.com/google/backup/signup.html][1]

(2)在Manifest xml文件中添加key

<application> <meta-data android:name="com.google.android.backup.api_key" android:value="backup_service_key_from_google" /> ... </application>

(3)在XML文件中添加我的backagent代理

<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" 
     ...
    android:backupAgent="MyBackupAgent" android:restoreAnyVersion="true"
    >

(4)创建一个名为MyBackupAgent的类

    class MyBackupAgent extends BackupAgentHelper{
   @Override
   public void onCreate(){
      FileBackupHelper dbs = new FileBackupHelper(this, "../databases/"+SQLHelp.dbName);
      addHelper(SQLHelp.dbName, dbs);
   }
}

(5)调用备份Manager进行备份

BackupManager  mBackupManager = new BackupManager(this);
    mBackupManager.dataChanged();

在第 5 步之后,我看不到任何事情发生。我在 MyBackupAgent 中设置了一个断点。onCreate() 函数没有任何停止。

有什么建议么?

4

1 回答 1

1

可能是您根本没有等待足够长的时间。从文档中参考对 dataChanged 的​​调用:

此调用通知备份管理器有准备好备份到云的数据。在将来的某个时候,备份管理器会调用您的备份代理的 onBackup() 方法。

备份不会立即启动。它被安排在未来的时间。您可以在命令行上使用 adb 立即启动备份。

请参阅http://developer.android.com/guide/topics/data/backup.html(测试您的备份代理)

于 2013-12-11T18:37:49.870 回答