有一个代码:
public class BackupHelper extends BackupAgentHelper {
public static final Object[] DATA_LOCK = new Object[0];
@Override
public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
ParcelFileDescriptor newState) throws IOException {
synchronized (DATA_LOCK) {
super.onBackup(oldState, data, newState);
}
Log.d("BackupHelper", "onBackup()");
}
@Override
public void onCreate(){
FileBackupHelper db = new FileBackupHelper(this, DatabaseHelper.DATABASE_NAME);
addHelper(DatabaseHelper.DATABASE_NAME, db);
Log.d("BackupHelper", "onCreate()");
}
@Override
public File getFilesDir(){
File path = getDatabasePath(DatabaseHelper.DATABASE_NAME);
return path.getParentFile();
}
@Override
public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)
throws IOException {
Log.d("BackupHelper", "onRestore()");
synchronized (DATA_LOCK) {
super.onRestore(data, appVersionCode, newState);
}
}
}
清单说:
android:allowBackup="true"
android:fullBackupOnly="true"
android:backupInForeground="true"
android:backupAgent=".app.db.BackupHelper"
我这样称呼:
private BackupManager backupManager;
backupManager = new BackupManager(context);
但即使是来自 BackupHelper 的日志也不会显示。也许我做错了什么?请帮助,我已经挣扎了几天。
一般来说,我们可以说问题已经解决了。事实是 android 自己决定何时进行备份,您需要等待或帮助禁用/启用同步。