FileBackupHelperpublic class FileBackupHelper extends FileBackupHelperBase implements BackupHelperA 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.
super(context);
mContext = context;
mFilesDir = context.getFilesDir();
mFiles = files;
|
Methods Summary |
---|
public void | performBackup(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 void | restoreEntity(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);
}
|
|