我正在尝试将应用程序的数据备份到Google服务器中。
为此,我在我的代码中实现了BackupAgent
,并将其包含在Android清单文件和“元数据”中(使用Android Backup Service注册了我的应用程序包后得到)< / p>
当我运行应用程序进行备份时,这不执行备份..我使用Nexus一台设备(也连接到WIFI)。
任何人都可以告诉我为什么不调用我的BackupAgent的onBackup()
方法?
我是否遗漏了一些内容,包含在Android清单文件中或程序中的某些位置?
以下是我的清单文件..
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.simpledatabackup"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:backupAgent="MyBackupAgent"
android:debuggable="true">
<activity android:name=".SimpleDatabackup"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIZn2ysSLR5wNbcq1uaoWQO0HuipMetQENVTsilw" />
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
,源文件是
public class SimpleDatabackup extends Activity {
private SharedPreferences myPrefs ; // Shared Preferences
BackupManager mBackupManager;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myPrefs = this.getSharedPreferences("shared_prefs", MODE_WORLD_READABLE);
SharedPreferences.Editor edit = myPrefs.edit();
edit.putString("firstname", "uday") ;
edit.putString("lastname", "kiran") ;
edit.commit() ;
mBackupManager.dataChanged();
}
}
我的备份代理是这样的:我没有实现其中的功能是onBackup()和onRestore()。一旦它被调用,我将实现我想要的......
public class MyBackupAgent extends BackupAgent {
@Override
public void onCreate() {
System.out.println("In MyBackuAgent's onCreate() method");
}
@Override
public void onBackup(ParcelFileDescriptor arg0, BackupDataOutput arg1,
ParcelFileDescriptor arg2) throws IOException {
System.out.println("In MyBackuAgent's onBackup()");
// TODO Auto-generated method stub
}
@Override
public void onRestore(BackupDataInput data, int appVersionCode,
ParcelFileDescriptor newState) throws IOException {
}
}
答案 0 :(得分:4)
清单中的应用程序标记包括
android:allowBackup="true"
android:restoreAnyVersion="true"
android:backupAgent="<package>.MyBackupAgent"
请按照"Testing your BackupAgent"部分立即调用备份进行测试。
BackupManagerService在对backupmanager进行datachanged调用后的小时间隔内定期计划备份。 [grepcode]