1

アプリケーションのデータを Google サーバーにバックアップしようとしています。

これを行うために、コードに を実装し、BackupAgentこれを Android マニフェスト ファイルと「メタデータ」に含めました (アプリケーションのパッケージをAndroid バックアップ サービスに登録した後に取得)

アプリケーションを実行してバックアップを実行すると、バックアップが実行されません.Nexus 1デバイスを使用しています(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 {

}

}
4

1 に答える 1

4

マニフェストのアプリケーション タグに含める

android:allowBackup="true" 
android:restoreAnyVersion="true" 
android:backupAgent="<package>.MyBackupAgent"

「BackupAgentのテスト」セクションに従って、テストのためにバックアップを即座に呼び出してください。

BackupManagerService は、backupmanager への datachanged 呼び出しの後、1 時間間隔で定期的にバックアップをスケジュールします。[grepコード]

于 2011-09-01T07:26:10.850 に答える