我正在尝试将我的应用程序数据备份到 Google 服务器中。
为此,我BackupAgent
在我的代码中实现了一个,并将其包含在 Android 清单文件和“元数据”中(在使用Android 备份服务注册我的应用程序包后得到)
当我运行应用程序进行备份时,这并没有执行备份。我使用的是 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 {
}
}