Android getDefaultSharedPreferences

Мой код:

final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean hasBeenShown = prefs.getBoolean(eulaKey, false);

Всегда возвращает разные значения в зависимости от версии ОС. Протестировано в 2.2, 2.3.4, 3.2, 4.0.3 - возвращает правильное значение. Но для устройства Zte blade с 2.3.7 с CianogenMod 7.1 - результат всегда ложный. Я полагаю, значение по умолчанию для getBoolean.

Вот код написания логического значения:

final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();

Кто-нибудь знает?

Обновление: Сравнивая мой текущий код с моей предыдущей версией кода - нет никакой разницы в коде. Разница только в манифесте: код работает нормально с minVersion=8 и targetVersion=8 Теперь я компилирую с minversion=8 и target=13 /из-за Admob/. Возможно, какие-то API изменились, но я ничего не нашел по этому поводу.

РЕШЕНИЕ: -Запуск приложения из ярлыка и из меню дает мне разные DefaultSharedPreferences. После удаления DefaultSharedPreferences из моего кода - он работает отлично. Я не могу просто сказать: люди не делают ярлыков, поэтому мне пришлось изменить код.

54
задан Kostadin 17 April 2015 в 03:29
поделиться