summaryrefslogtreecommitdiffstats
path: root/core/java/android/backup/BackupManager.java
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2009-04-30 11:36:21 -0700
committerChristopher Tate <ctate@google.com>2009-04-30 11:36:21 -0700
commita8bf815c6153290b173f34b071dddb0a0034a115 (patch)
tree0fa451a3a1035092ce916e3d6a25b8e8553f03bd /core/java/android/backup/BackupManager.java
parent487529a70cd1479ae8d6bbfb356be7e72542c185 (diff)
downloadframeworks_base-a8bf815c6153290b173f34b071dddb0a0034a115.zip
frameworks_base-a8bf815c6153290b173f34b071dddb0a0034a115.tar.gz
frameworks_base-a8bf815c6153290b173f34b071dddb0a0034a115.tar.bz2
Add android.backup.BackupManager
Also tweak the dataChanged() api to have the client supply a package name. We don't necessarily TRUST this, but we use it to narrow the set of packages requesting a backup pass, no longer blithely scheduling a pass for all packages associated with the caller's uid.
Diffstat (limited to 'core/java/android/backup/BackupManager.java')
-rw-r--r--core/java/android/backup/BackupManager.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/core/java/android/backup/BackupManager.java b/core/java/android/backup/BackupManager.java
new file mode 100644
index 0000000..a2d39f5
--- /dev/null
+++ b/core/java/android/backup/BackupManager.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.backup;
+
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+
+/**
+ * BackupManager is the interface to the system's backup service.
+ * Applications simply instantiate one, and then use that instance
+ * to communicate with the backup infrastructure.
+ *
+ * <p>When your application has made changes to data it wishes to have
+ * backed up, call {@link #dataChanged()} to notify the backup service.
+ * The system will then schedule a backup operation to occur in the near
+ * future. Repeated calls to {@link #dataChanged()} have no further effect
+ * until the backup operation actually occurs.
+ *
+ * <p>The backup operation itself begins with the system launching the
+ * {@link BackupService} subclass declared in your manifest. See the documentation
+ * for {@link BackupService} for a detailed description of how the backup then proceeds.
+ */
+public class BackupManager {
+ private Context mContext;
+ private IBackupManager mService;
+
+ /**
+ * Constructs a BackupManager object through which the application can
+ * communicate with the Android backup system.
+ *
+ * @param context The {@link android.content.Context} that was provided when
+ * one of your application's {@link android.app.Activity Activities}
+ * was created.
+ */
+ public BackupManager (Context context) {
+ mContext = context;
+ mService = IBackupManager.Stub.asInterface(
+ ServiceManager.getService(Context.BACKUP_SERVICE));
+ }
+
+ /**
+ * Notifies the Android backup system that your application wishes to back up
+ * new changes to its data. A backup operation using your application's
+ * {@link BackupService} subclass will be scheduled when you call this method.
+ */
+ public void dataChanged() {
+ try {
+ mService.dataChanged(mContext.getPackageName());
+ } catch (RemoteException e) {
+ }
+ }
+}