Доступ файл из "/ данные/данные/..." не надежный так как я думаю, что это не тот же путь для всех телефонов (устройства Samsung - это разные AFAIK).
Я предпочитаю следующий метод, который в основном «реплицирует» старые общие префы и затем очищает его. Этот метод не удаляет старый файл общих файлов prefs, но больше relibale IMHO.
SharedPreferences settingsOld = context.getSharedPreferences(nameOld, Context.MODE_PRIVATE);
SharedPreferences settingsNew = context.getSharedPreferences(nameNew, Context.MODE_PRIVATE);
SharedPreferences.Editor editorNew = settingsNew.edit();
Map<String, ?> all = settingsOld.getAll();
for (Entry<String, ?> x : all.entrySet()) {
if (x.getValue().getClass().equals(Boolean.class)) editorNew.putBoolean(x.getKey(), (Boolean)x.getValue());
else if (x.getValue().getClass().equals(Float.class)) editorNew.putFloat(x.getKey(), (Float)x.getValue());
else if (x.getValue().getClass().equals(Integer.class)) editorNew.putInt(x.getKey(), (Integer)x.getValue());
else if (x.getValue().getClass().equals(Long.class)) editorNew.putLong(x.getKey(), (Long)x.getValue());
else if (x.getValue().getClass().equals(String.class)) editorNew.putString(x.getKey(), (String)x.getValue());
}
editorNew.commit();
SharedPreferences.Editor editorOld = settingsOld.edit();
editorOld.clear();
editorOld.commit();
упс! код нарушен! Пожалуйста, попробуйте понять. Я новичок на сайте и андроиде тоже Спасибо Владимиру Ивану за предложения. – Baba
, возможно, вам захочется проголосовать за его ответ, если это поможет. Я также предоставил для ответа ответ, чтобы помочь очистить форматирование. –