我无法理解addHelper()方法的keyPrefix。 是否需要为每个BackupAgentHelper类实例或每个SharedPreferencesBackupHelper都是唯一的? 我想备份两组或更多组SharedPreferences:
示例:
public class PrefsBackupAgent extends BackupAgentHelper {
// Allocate a helper and add it to the backup agent
@Override
public void onCreate() {
SharedPreferencesBackupHelper user1 = new SharedPreferencesBackupHelper(this, "user1_preferences");
addHelper('prefs', user1); // <-- keyPrefix same to both addHelper Calls?
SharedPreferencesBackupHelper user2 = new SharedPreferencesBackupHelper(this, "user2_preferences");
addHelper('prefs', user2); // <--
}
}
或是否需要看起来像这样:
public class PrefsBackupAgent extends BackupAgentHelper {
// Allocate a helper and add it to the backup agent
@Override
public void onCreate() {
SharedPreferencesBackupHelper user1 = new SharedPreferencesBackupHelper(this, "user1_preferences");
addHelper('user1', user1); // <-- or do they need to be unique for each SharedPreferencesBackupHelper ?
SharedPreferencesBackupHelper user2 = new SharedPreferencesBackupHelper(this, "user2_preferences");
addHelper('user2', user2); // <--
}
}
哪一个是正确的方法?
谢谢!
答案 0 :(得分:0)
你的第一个例子是正确的。
public class MyBackupAgentHelper extends BackupAgentHelper {
static final String DEFAULT_PREFS = "packagename_preferences";
static final String OTHER_PREFS = "packagename_other_preference";
// A key to uniquely identify the set of backup data
static final String PREFS_BACKUP_KEY = "prefs";
@Override
public void onCreate() {
SharedPreferencesBackupHelper helper1 = new SharedPreferencesBackupHelper(this, DEFAULT_PREFS);
SharedPreferencesBackupHelper helper2 = new SharedPreferencesBackupHelper(this, OTHER_PREFS);
addHelper(PREFS_BACKUP_KEY, helper1);
addHelper(PREFS_BACKUP_KEY, helper2);
}
}