Android BackupManager и мое приложение db: лучшие подходы

Я хотел бы использовать BackupManager для резервного копирования БД для моего приложения. В документации говорится о BackupAgent и BackupAgentHelper и говорится, что вы хотите использовать BackupAgent, если у вас есть БД.

С другой стороны, у BackupAgentHelper есть аккуратный FileBackupHelper, который упрощает задачу.

Мои вопросы:

1) Можно ли использовать FileBackupHelper для резервного копирования файла .sqlite в /data/data/‹myapp>/databases?

2) если нет, то можно ли использовать методы SQLiteOpenHelper внутри onBackup() и onRestore() (onCreate/onUpgrade для резервного копирования/восстановления)?


person llappall    schedule 26.01.2012    source источник


Ответы (1)


Это возможно. Когда вы расширяете BackupAgentHelper и реализуете его onCreate(), вы можете сделать что-то вроде этого:

addHelper(STATS_BACKUP_KEY, new DbBackupHelper(this, "my_db_name"));

И ваш класс DbBackupHelper может выглядеть так:

public class DbBackupHelper extends FileBackupHelper {

    public DbBackupHelper(Context ctx, String dbName) {
        super(ctx, "../databases/" + dbName);
    }
}

Полный пример см. в проекте Andlytics на GitHub: AndlyticsProject.

person IgorGanapolsky    schedule 17.01.2014