在我们的应用程序中,我们使用了PreferenceManager.getDefaultSharedPreferences
作为共享首选项。我们现在需要使用一个命名的prefs实例(用于A/B测试)。将SharedPreferences迁移到新的SharedPreferences
所以,现在我们使用context.getSharedPreferences(context.getString(R.string.app_name), Context.MODE_PRIVATE)
我需要做的是所有存储的偏好设定的移动从旧的实例到新的一个什么拿到首选项。有没有简单的解决方案来做到这一点?
我能够获得旧的prefs的地图,但不知道如何将它写入新的prefs,因为写入需要类型(“putInt”,“putString”等)。
此处,我已经打了一个路障:
private void convertToPrivateSharedPrefsIfNeeded() {
SharedPreferences oldPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Map<String, ?> oldPrefsMap = oldPrefs.getAll();
SharedPreferences newPrefs = getSharedPreferences(getString(R.string.app_name), Context.MODE_PRIVATE);
for (Map.Entry<String, ?> entry : oldPrefsMap.entrySet()) {
}
}
我猜,我在正确的轨道上,但不知道要放什么东西在for循环这里
其实我不知道,你可以重命名共享的首选项文件。这真是太棒了!我自己也没有检查价值的类型...在那里的伟大建议 – Psest328