Мой код:
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean hasBeenShown = prefs.getBoolean(eulaKey, false);
Всегда возвращает разные значения в зависимости от версии os. Протестировано в 2.2, 2.3.4, 3.2, 4.0.3 - возвращает правильное значение. Но для устройства Zte blade с 2.3.7 с CianogenMod 7.1 результат всегда ложный. Я полагаю, что значение по умолчанию для getBoolean.
Здесь написано код boolean:
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();
Есть ли у кого-нибудь идеи?
Обновление: Сравнивая мой текущий код с моей предыдущей версией кода - в коде нет разницы. В манифесте только различие: код работает Ok с minVersion = 8 и targetVersion = 8 Теперь я компилирую с minversion = 8 и target = 13/из-за Admob/. Возможно, некоторые API изменились, но я ничего не нашел на этом.
РЕШЕНИЕ: -Запустить приложение из ярлыка и из меню дает мне разные DefaultSharedPreferences. После удаления DefaultSharedPreferences из моего кода - он работает отлично. Я не могу просто сказать: люди не делают ярлыки, поэтому мне пришлось изменить код.