Android 为什么没有调用BackupAgentPer的onBackup()方法?

Android 为什么没有调用BackupAgentPer的onBackup()方法?,android,android-backup-service,Android,Android Backup Service,我已经阅读了文档和其他问题,但我想我遗漏了一些东西。正在调用BackupAgent的onCreate,但没有调用onBackup,即使在我调用adb bmgr backup,然后从命令行运行adb shell bmgr时也是如此。我遗漏了方程式的哪一部分 MyBackupAgent类: public class MyBackupAgent extends BackupAgentHelper { public MyBackupAgent() { Log.d("GradeT

我已经阅读了文档和其他问题,但我想我遗漏了一些东西。正在调用BackupAgent的onCreate,但没有调用onBackup,即使在我调用adb bmgr backup,然后从命令行运行adb shell bmgr时也是如此。我遗漏了方程式的哪一部分

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备份服务上注册了我的应用程序,但它并没有说我需要等待。我遗漏了什么?

在创建时,我原来以为我正在运行的代码实际上是在构造函数中运行的。我甚至没有onCreate 来自BackupAgent的日志条目似乎没有显示在日志中。但是,您可以在调试时在onBackup中创建断点并停止执行