Android 如何实现安卓&x2019;s数据备份服务
对于我的Android项目,我试图遵循并实施Android开发者数据备份指南(),但数据备份和恢复不起作用。有人能帮我举个例子吗?经过进一步的调查,我找到了实现Android数据备份和恢复的步骤。它们是:Android 如何实现安卓&x2019;s数据备份服务,android,Android,对于我的Android项目,我试图遵循并实施Android开发者数据备份指南(),但数据备份和恢复不起作用。有人能帮我举个例子吗?经过进一步的调查,我找到了实现Android数据备份和恢复的步骤。它们是: 在清单xml文件中添加以下内容: aandroid:allowBackup=“true”(这将启用android的数据备份服务) b元数据android:name=“com.google.android.backup.api\u key” android:value=“{android备份服务
a
android:allowBackup=“true”
(这将启用android的数据备份服务)b<代码>元数据android:name=“com.google.android.backup.api\u key” android:value=“{android备份服务的唯一注册密钥}”(您必须向备份服务注册应用程序包名称。若要生成密钥,请转到)
c
android:backupAgent=“.MyBackupAgent”
(这是实现您声明的备份代理类的类的名称)。注1:名称的第一个字符是一个句点,用于简写查找“com.example.project.MyBackupAgent”。注2:如果发生运行时异常(这可能会发生,也可能不会发生,取决于您的项目结构),例如:java.lang.ClassNotFoundException:未找到类“com.example.project.MyBackupAgent”,则我建议您反编译apk(在中上载apk包)然后搜索MyBackupAgent的绝对路径,并为android插入此路径:backupAgent=“{absolute path}.MyBackupAgent”public class MyBackupAgent: BackupAgentHelper
{
string myProtectData = "File.bin";
string myPersistentData = "Data.bin";
string myDBase = "Database.db";
public override void OnCreate()
{
Console.WriteLine ("****** Enter Backup Files Helpers *********");
base.OnCreate ();
try
{
FileBackupHelper dbkh = new FileBackupHelper (this, myProtectData);
this.AddHelper ("PROTECT_backup", dbkh);
FileBackupHelper persisth = new FileBackupHelper (this, myPersistentData);
this.AddHelper ("PERSIST_backup", persisth);
FileBackupHelper dbh = new FileBackupHelper (this, myDBase);
this.AddHelper ("DATABASE_backup", dbh);
Console.WriteLine ("********* All 3 files backuped *********");
}
catch {
Console.WriteLine ("******* Backup AddHelper Exception ERROR *********");
}
Console.WriteLine ("******** Exit Backup Files Helpers ********");
}
public override void OnBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)
{
Console.WriteLine ("****** Override OnBackup called ******");
base.OnBackup(oldState, data, newState);
}
public override void OnRestore (BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)
{
Console.WriteLine ("****** Override OnRestore called ******");
base.OnRestore(data, appVersionCode, newState);
}
}
这是我找到的最好的样本:
import android.app.backup.BackupAgentHelper;
import android.app.backup.SharedPreferencesBackupHelper;
import android.util.Log;
public class MyBackupAgent extends BackupAgentHelper{
static final String PREFS = "myprefs";
static final String PREFS_BACKUP_KEY = "myprefs";
@Override
public void onCreate() {
Log.i("MyFileBackupAgent", "****** Enter BACKUP CLASS *******");
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS);
addHelper(PREFS_BACKUP_KEY, helper);
Log.i("MyFileBackupAgent", "****** Exit BACKUP CLASS ********");
}
}
public class MyBackupAgent: BackupAgentHelper
{
string myProtectData = "File.bin";
string myPersistentData = "Data.bin";
string myDBase = "Database.db";
public override void OnCreate()
{
Console.WriteLine ("****** Enter Backup Files Helpers *********");
base.OnCreate ();
try
{
FileBackupHelper dbkh = new FileBackupHelper (this, myProtectData);
this.AddHelper ("PROTECT_backup", dbkh);
FileBackupHelper persisth = new FileBackupHelper (this, myPersistentData);
this.AddHelper ("PERSIST_backup", persisth);
FileBackupHelper dbh = new FileBackupHelper (this, myDBase);
this.AddHelper ("DATABASE_backup", dbh);
Console.WriteLine ("********* All 3 files backuped *********");
}
catch {
Console.WriteLine ("******* Backup AddHelper Exception ERROR *********");
}
Console.WriteLine ("******** Exit Backup Files Helpers ********");
}
public override void OnBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)
{
Console.WriteLine ("****** Override OnBackup called ******");
base.OnBackup(oldState, data, newState);
}
public override void OnRestore (BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)
{
Console.WriteLine ("****** Override OnRestore called ******");
base.OnRestore(data, appVersionCode, newState);
}
}