public class BackupManager
extends Object
| java.lang.Object | |
| android.app.backup.BackupManager | |
应用程序与Android备份服务交互以请求备份和还原操作的界面。 应用程序使用构造函数实例化它,并通过该实例发出调用。
当应用程序对需要备份的数据进行更改时,对dataChanged()的调用将通知备份服务。 然后系统将安排备份操作在不久的将来进行。 在备份操作实际发生之前,重复调用dataChanged()不会产生进一步的影响。
当系统启动您在清单中声明的BackupAgent子类时,应用程序的备份或恢复操作开始。 有关操作如何进行的详细说明,请参阅BackupAgent的文档。
影响备份和恢复机制操作的几个属性可以在应用程序的AndroidManifest.xml文件的 <application>标记中设置。
有关使用BackupManager的更多信息,请阅读 Data Backup开发人员指南。
XML attributes |
|
|---|---|
android:allowBackup |
Whether to allow the application to participate in the backup and restore infrastructure. |
android:backupAgent |
The name of the class subclassing BackupAgent to manage backup and restore of the application's data on external storage. |
android:killAfterRestore |
Whether the application in question should be terminated after its settings have been restored during a full-system restore operation. |
android:restoreAnyVersion |
Indicate that the application is prepared to attempt a restore of any backed-up dataset, even if the backup is apparently from a newer version of the application than is currently installed on the device. |
Public constructors |
|
|---|---|
BackupManager(Context context) 构造一个BackupManager对象,应用程序可以通过该对象与Android备份系统进行通信。 |
|
公共方法(Public methods) |
|
|---|---|
void |
dataChanged() 通知Android备份系统,您的应用程序希望备份其数据的新更改。 |
static void |
dataChanged(String packageName) 呼叫者的便捷方法,需要指出其他一些包需要备份通行证。 |
int |
requestRestore(RestoreObserver observer) 从备份恢复调用应用程序。 |
继承方法(Inherited methods) |
|
|---|---|
java.lang.Object
|
|
是否允许应用程序参与备份和还原基础架构。 如果此属性设置为false ,即使通过全系统备份,也不会执行应用程序的备份或恢复,否则会导致所有应用程序数据通过adb保存。 该属性的默认值是true 。
必须是布尔值,可以是“ true ”或“ false ”。
这也可以是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name 。
这对应于全局属性资源符号 allowBackup 。
用于管理外部存储上应用程序数据的备份和还原的类别名称 BackupAgent 。
必须是字符串值,使用'\\;' 转义字符如'\\ n'或'\\ uxxxx'作为unicode字符。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name 。
这对应于全局属性资源符号 backupAgent 。
在全系统恢复操作期间,恢复其设置后是否应终止该应用程序。 单包恢复操作永远不会导致应用程序关闭。 手机第一次设置时,全系统恢复操作通常只发生一次。 第三方应用程序通常不需要使用此属性。
默认值为 true ,这意味着在完整系统还原期间应用程序处理完数据后,它将被终止。
必须是布尔值,可以是“ true ”或“ false ”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name 。
这对应于全局属性资源符号 killAfterRestore 。
表明应用程序已准备好尝试恢复任何备份的数据集,即使备份显然是来自应用程序的新版本而不是当前在设备上安装的。 将该属性设置为true将允许备份管理器尝试恢复,即使版本不匹配表明数据不兼容。 谨慎使用!
此属性的默认值是 false 。
必须是布尔值,可以是“ true ”或“ false ”。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name 。
这对应于全局属性资源符号 restoreAnyVersion 。
BackupManager (Context context)
构造一个BackupManager对象,应用程序可以通过该对象与Android备份系统进行通信。
| 参数(Parameters) | |
|---|---|
context |
Context: The Context that was provided when one of your application's Activities was created. |
void dataChanged ()
通知Android备份系统,您的应用程序希望备份其数据的新更改。 调用此方法时,将使用应用程序的BackupAgent子类进行备份操作。
void dataChanged (String packageName)
呼叫者的便捷方法,需要指出其他一些包需要备份通行证。 这对于共享一个uid的包组是很有用的。
如果参数中指定的包不在调用方的相同uid下运行,则此方法要求应用程序保持“android.permission.BACKUP”权限。
| 参数(Parameters) | |
|---|---|
packageName |
String: The package name identifying the application to back up. |
int requestRestore (RestoreObserver observer)
从备份恢复调用应用程序。 如果应用程序在那里存储了数据,或者从最后一次完整设备设置操作期间使用的数据集(如果当前备份数据集没有匹配的数据),则将从当前备份数据集中恢复数据。 如果在任一来源中没有备份数据存在此应用程序,则会返回非零值。
如果此方法返回零(表示成功),则操作系统将尝试从远程传输中检索备份的数据集,实例化应用程序的备份代理,并将数据集传递给代理的方法 onRestore() 。
| 参数(Parameters) | |
|---|---|
observer |
RestoreObserver: The RestoreObserver to receive callbacks during the restore operation. This must not be null. |
| 返回(Returns) | |
|---|---|
int |
Zero on success; nonzero on error. |