目前尚未准备好备份请求

时间:2014-04-28 19:42:51

标签: java android xml android-backup-service

每当用户第一次安装我的应用时,会随机生成instalationID(比如Instalationid = 123)。我正在尝试备份此instalationID,以便当用户卸载然后安装我的应用程序时,旧的instalationID(123)将再次分配给他,而不是新的。毕竟,他是同一个用户。

我有一个名为SESSION_INFO_PREFERENCE_KEY的共享首选项文件,它保存了instalationID,我尝试备份共享首选项文件。备份经理是:

public class ADCBackupAgent extends BackupAgentHelper {

    // The name of the SharedPreferences file instalation ID
    static final String INSTID = "SESSION_INFO_PREFERENCE_KEY"; //SESSION_INFO_INSTALLATION_UID    

    // A key to uniquely identify the set of backup data
    static final String INSTID_BACKUP_KEY = "inst_id";

    // Allocate a helper and add it to the backup agent 
    @Override
    public void onCreate() {
        Log.i("OnCreate Method","!!!!!!ON create called!!!!!!!!!!");
        SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, INSTID);
        addHelper(INSTID_BACKUP_KEY, helper);               
    }

}

此外,每当第一次生成instalationID时,我都会对备份管理器执行调用,例如:

//this pointing to the current Activity
 BackupManager backUpManager = new BackupManager(this);           
 backUpManager.dataChanged();

为了完整:

<application 
        android:icon="@drawable/application_icon"
        android:label="@string/app_name"
        android:name="MyAppName"
        android:theme="@style/FragmentTheme"
        android:allowBackup="true"
        android:backupAgent=".ADCBackupAgent"> 

...

<meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqr..." />
</application>

当我在本地传输上备份(使用bmgr工具)时,我的代码运行得非常好,但是,当我尝试备份Google云端的数据时,我得到:

04-28 15:12:24.305: W/BackupTransportService(390): Not ready for backup request right now: [OperationScheduler: enabledState=true lastSuccess=2014-04-03/15:10:49 moratoriumSet=2014-04-28/14:43:18 moratorium=2014-04-29/14:43:18 trigger=1969-12-31/19:00:00]

此外,永远不会调用onCreate()方法。

当我备份本地传输上的数据时,这不会发生,即,onCreate()被调用,并且“尚未准备好立即备份请求”。

0 个答案:

没有答案