Общие настройки теряются после выключения устройства или закрытия приложения.

есть много вопросов, связанных с общими предпочтениями и альтернативами. Моя проблема: когда я выключаю устройство или закрываю приложение, общие настройки теряются. Обратите внимание, что мой код действительно работает на Acer A500. Но на моем Motorola Xoom MZ604 это не работает!!

Прежде всего я пытаюсь восстановить свой HashSet в onCreate. Этот метод вызывается точно и реализован в синглтоне.

public boolean restoreCollection(Context context){
    SharedPreferences settings = context.getSharedPreferences(context.getString(R.string.restore_values), 0);
    if(settings.getStringSet(context.getString(R.string.collection), null) != null){
        collection = settings.getStringSet(context.getString(R.string.collection), null);
        return true;
    } 
    collection = new HashSet<String>();
    return false;
}

Вызывая onDestroy, я сохраняю HashSet. Несмотря на то, что не указано, что этот метод вызывается точно, настройки в любом случае теряются, я пытался сохранить его в onPause с тем же результатом.

public void saveCollection(Context context){
    SharedPreferences settings = context.getSharedPreferences(context.getString(R.string.restore_values), 0);
    SharedPreferences.Editor e = settings.edit();
e.putStringSet(context.getString(R.string.collection), collection);
e.commit();
}

Были ли у кого-нибудь проблемы с общими настройками и устройством XOOM, или я один такой? Возможно, что-то не так с моим кодом, но данные не теряются на моем планшете Acer.

Я также пробовал PreferenceManager.getDefaultSharedPreferences(context) для получения объекта SharedPreferences

Спасибо за помощь, Крис

11
задан Gordon 2 November 2013 в 21:36
поделиться