Most visited

Recently visited

Added in API level 8

BackupManager

public class BackupManager
extends Object

java.lang.Object
   ↳ android.app.backup.BackupManager


应用程序与Android备份服务交互以请求备份和还原操作的界面。 应用程序使用构造函数实例化它,并通过该实例发出调用。

当应用程序对需要备份的数据进行更改时,对dataChanged()的调用将通知备份服务。 然后系统将安排备份操作在不久的将来进行。 在备份操作实际发生之前,重复调用dataChanged()不会产生进一步的影响。

当系统启动您在清单中声明的BackupAgent子类时,应用程序的备份或恢复操作开始。 有关操作如何进行的详细说明,请参阅BackupAgent的文档。

影响备份和恢复机制操作的几个属性可以在应用程序的AndroidManifest.xml文件的 <application>标记中设置。

Developer Guides

有关使用BackupManager的更多信息,请阅读 Data Backup开发人员指南。

Summary

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

XML attributes

android:allowBackup

是否允许应用程序参与备份和还原基础架构。 如果此属性设置为false ,即使通过全系统备份,也不会执行应用程序的备份或恢复,否则会导致所有应用程序数据通过adb保存。 该属性的默认值是true

必须是布尔值,可以是“ true ”或“ false ”。

这也可以是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 allowBackup

android:backupAgent

用于管理外部存储上应用程序数据的备份和还原的类别名称 BackupAgent

必须是字符串值,使用'\\;' 转义字符如'\\ n'或'\\ uxxxx'作为unicode字符。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 backupAgent

android:killAfterRestore

在全系统恢复操作期间,恢复其设置后是否应终止该应用程序。 单包恢复操作永远不会导致应用程序关闭。 手机第一次设置时,全系统恢复操作通常只发生一次。 第三方应用程序通常不需要使用此属性。

默认值为 true ,这意味着在完整系统还原期间应用程序处理完数据后,它将被终止。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 killAfterRestore

android:restoreAnyVersion

表明应用程序已准备好尝试恢复任何备份的数据集,即使备份显然是来自应用程序的新版本而不是当前在设备上安装的。 将该属性设置为true将允许备份管理器尝试恢复,即使版本不匹配表明数据不兼容。 谨慎使用!

此属性的默认值是 false

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 restoreAnyVersion

Public constructors

BackupManager

Added in API level 8
BackupManager (Context context)

构造一个BackupManager对象,应用程序可以通过该对象与Android备份系统进行通信。

Parameters
context Context: The Context that was provided when one of your application's Activities was created.

Public methods

dataChanged

Added in API level 8
void dataChanged ()

通知Android备份系统,您的应用程序希望备份其数据的新更改。 调用此方法时,将使用应用程序的BackupAgent子类进行备份操作。

dataChanged

Added in API level 8
void dataChanged (String packageName)

呼叫者的便捷方法,需要指出其他一些包需要备份通行证。 这对于共享一个uid的包组是很有用的。

如果参数中指定的包不在调用方的相同uid下运行,则此方法要求应用程序保持“android.permission.BACKUP”权限。

Parameters
packageName String: The package name identifying the application to back up.

requestRestore

Added in API level 8
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.

Hooray!