Android getDefaultSharedPreferences
Mój kod to:
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean hasBeenShown = prefs.getBoolean(eulaKey, false);
Zawsze zwraca różne wartości w zależności od wersji os. Testowane w 2.2, 2.3.4, 3.2, 4.0.3 - zwraca poprawną wartość. Ale dla urządzenia Zte blade z 2.3.7 z CianogenMod 7.1 - wynik jest zawsze fałszywy. Przypuszczam, że domyślna wartość getBoolean.
Oto kod boolowski:
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();
Czy ktoś ma jakiś pomysł?
Aktualizacja: Porównując mój obecny kod z poprzednią wersją kodu - nie ma różnicy w kodzie. Tylko manifest jest w manifest: kod działa Ok z minVersion = 8 i targetVersion = 8 Teraz kompiluję z minversion = 8 i target = 13 / z powodu Admob /. Może zmieniły się niektóre interfejsy API, ale nic na to nie znalazłem.
ROZWIĄZANIE: -Uruchamianie aplikacji ze skrótu iz menu daje mi różne Preferencje DefaultShared. Po usunięciu DefaultSharedPreferences z mojego kodu - działa idealnie. Nie mogę po prostu powiedzieć: ludzie nie robią skrótów, więc musiałem zmienić kod.