SQLite数据库备份android

时间:2013-12-11 18:33:29

标签: android sqlite backup android-backup-service

我已完成以下操作以使SQLite数据库备份/还原工作。

(1)从Google注册。

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

(2)将密钥添加到Manifest xml文件

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

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

<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)调用备份管理器进行备份

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

可能你根本没有等待足够长的时间。从文档中引用对dataChanged的调用:

  

此调用通知备份管理器已准备好数据   备份到云端。在将来的某个时刻,备份   然后管理器调用备份代理的onBackup()方法。

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

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