自动备份SQLite数据库

时间:2016-03-04 16:39:59

标签: android sqlite backup

我的应用使用了一个我希望备份的小型SQLite数据库。我假设这不会自动发生,我没有使用fullBackupContent对其进行编码,如下所示。如何修改backupscheme.xml的内容以正确设置包含路径?我更喜欢在运行时设置db位置。

我的backupscheme.xml看起来像

require_once('autoload.php');
require_once('Client.php');

$client = new Google_Client();

        $client->setClientId('my clientid');
        $client->setClientSecret('my secret');
        $client->setDeveloperKey('my developer key');
        $client->setApprovalPrompt('auto');
        $client->setAccessType('offline');
        $client->setRedirectUri(null);
        $client->setScopes(array('https://www.googleapis.com/auth/userinfo.profile','https://www.googleapis.com/auth/analytics'));



$service    =   new Google_Service_Analytics($client);

// get accounts from analytics
$accounts   = $service->management_accounts->listManagementAccounts();

我的清单包含:

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content >
    <include domain="database" path="device_info.db"/>
</full-backup-content

1 个答案:

答案 0 :(得分:4)

<include domain="database" path="device_info.db"/>

此处,域指示解释path的根目录。 database默认情况下映射到SQLite数据库的存储位置,如果您使用:

  • getDatabasePath() Context
  • SQLiteOpenHelper只有一个简单的文件名
  • openOrCreateDatabase()只有一个简单的文件名

在这种情况下,文件名应为path值。

如果您的数据库由于某种原因存储在其他地方,则<include>指令需要进行一些调整。