1

ドキュメントやその他の質問を読みましたが、何かが足りないと思います。私の BackupAgentは呼び出されていますが、コマンド ラインから呼び出しても呼び出さonCreateれません。方程式のどの部分が欠けていますか?onBackupadb bmgr backup <package>adb shell bmgr run

MyBackupAgent クラス:

public class MyBackupAgent extends BackupAgentHelper {

    public MyBackupAgent() {
        Log.d("GradeTracker.MyBackupAgent", "onCreate called");
        String str = DBAdapter.DATABASE_NAME;
        FileBackupHelper myDb = new FileBackupHelper(this, "../databases/" + str);
        addHelper(DBAdapter.DATABASE_NAME , myDb);

    }

    @Override
    public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
         ParcelFileDescriptor newState) throws IOException {

        Log.d("GradeTracker.MyBackupAgent", "onBackup called");

            synchronized (DBAdapter.dbBackupLockObject) {
                    super.onBackup(oldState, data, newState);
            }
    }

    @Override
    public void onRestore(BackupDataInput data, int appVersionCode,
                    ParcelFileDescriptor newState) throws IOException {

            Log.d("GradeTracker.MyBackupAgent", "onRestore called");

            synchronized (DBAdapter.dbBackupLockObject) {
                    super.onRestore(data, appVersionCode, newState);
            }
    }
}

私のマニフェストで:

<application
        android:allowBackup="true"
        android:backupAgent="MyBackupAgent"
...
<meta-data android:name="com.google.android.backup.api_key" 
            android:value="<my_key>" />

数時間前にアプリを Android Backup Services に登録したばかりですが、待つ必要があるとは言われませんでした。私は何が欠けていますか?

4

2 に答える 2

0

実行していると思っていたコードonCreate()が、実際にはコンストラクターで実行されていたことがわかりました。私はonCreateすら持っていません。>.<

于 2014-11-13T23:12:46.450 に答える
0

BackupAgent からのログ エントリがログに表示されないようです。ただし、ブレークポイントを作成すると、デバッグ中に実行が停止しonBackup()ます。

于 2015-10-14T09:41:21.247 に答える