FileBackupHelper.javaAPI DocAndroid 5.1 API3859Thu Mar 12 22:22:10 GMT


public class FileBackupHelper extends FileBackupHelperBase implements BackupHelper
A helper class that can be used in conjunction with {@link} to manage the backup of a set of files. Whenever backup is performed, all files changed since the last backup will be saved in their entirety. When backup first occurs, every file in the list provided to {@link #FileBackupHelper} will be backed up.

During restore, if the helper encounters data for a file that was not specified when the FileBackupHelper object was constructed, that data will be ignored.

Note: This should be used only with small configuration files, not large binary files.

Fields Summary
private static final String
private static final boolean
Constructors Summary
public FileBackupHelper(android.content.Context context, String files)
Construct a helper to manage backup/restore of entire files within the application's data directory hierarchy.

context The backup agent's Context object
files A list of the files to be backed up or restored.


        mContext = context;
        mFilesDir = context.getFilesDir();
        mFiles = files;
Methods Summary
public voidperformBackup(android.os.ParcelFileDescriptor oldState, BackupDataOutput data, android.os.ParcelFileDescriptor newState)
Based on oldState, determine which of the files from the application's data directory need to be backed up, write them to the data stream, and fill in newState with the state as it exists now. When oldState is null, all the files will be backed up.

This should only be called directly from within the {@link BackupAgentHelper} implementation. See {@link, BackupDataOutput, ParcelFileDescriptor)} for a description of parameter meanings.

        // file names
        String[] files = mFiles;
        File base = mContext.getFilesDir();
        final int N = files.length;
        String[] fullPaths = new String[N];
        for (int i=0; i<N; i++) {
            fullPaths[i] = (new File(base, files[i])).getAbsolutePath();

        // go
        performBackup_checked(oldState, data, newState, fullPaths, files);
public voidrestoreEntity(BackupDataInputStream data)
Restore one record [representing a single file] from the restore dataset.

This should only be called directly from within the {@link BackupAgentHelper} implementation.

        if (DEBUG) Log.d(TAG, "got entity '" + data.getKey() + "' size=" + data.size());
        String key = data.getKey();
        if (isKeyInList(key, mFiles)) {
            File f = new File(mFilesDir, key);
            writeFile(f, data);