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 |
|
---|---|
From class 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. |