FileDocCategorySizeDatePackage
FileBackupHelper.javaAPI DocAndroid 5.1 API3859Thu Mar 12 22:22:10 GMT 2015android.app.backup

FileBackupHelper

public class FileBackupHelper extends FileBackupHelperBase implements BackupHelper
A helper class that can be used in conjunction with {@link android.app.backup.BackupAgentHelper} 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
TAG
private static final boolean
DEBUG
android.content.Context
mContext
File
mFilesDir
String[]
mFiles
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.

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


                                            
         
        super(context);

        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 android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor, 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);
        }