Mein Code ist:Android getDefaultSharedPreferences
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean hasBeenShown = prefs.getBoolean(eulaKey, false);
immer unterschiedliche Werte je nach OS-Version zurückgibt. Getestet in 2.2, 2.3.4, 3.2, 4.0.3 - gibt den korrekten Wert zurück. Aber für Gerät Zte Blade mit 2.3.7 mit CianogenMod 7.1 - Ergebnis ist immer falsch. Ich vermute Standardwert für getBoolean.
Hier Code schreiben boolean:
final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();
Hat jemand eine Idee?
Update: Vergleiche meinen aktuellen Code mit meiner früheren Version des Codes - es gibt keinen Unterschied im Code. Nur der Unterschied ist offensichtlich: Code funktioniert Ok mit minVersion = 8 und targetVersion = 8 Jetzt kompiliere ich mit minversion = 8 und Ziel = 13/wegen Admob /. Vielleicht haben sich einige APIs geändert, aber ich habe dazu nichts gefunden.
LÖSUNG: -Start App aus Verknüpfung und aus dem Menü gibt mir verschiedene DefaultSharedPreferences. Nach dem Entfernen von DefaultSharedPreferences aus meinem Code - es funktioniert perfekt. Ich kann nicht einfach sagen: Leute machen keine Abkürzungen, also musste ich den Code ändern.
Es ist nicht ungewöhnlich für einige Geräte, um zufällig SharedPreferences Daten verloren gehen. Ein Beispiel finden Sie unter http://code.google.com/p/android/issues/detail?id=14359. –
Sind diese Informationen nur auf getDefaultSharedPreferences bezogen? Kennen Sie die gleichen Probleme mit getSharedPreferences ("myAppPrefs", Context.MODE_PRIVATE); ? – Kostadin
versuchen Sie es mit getSharedPreferences als die Standardwerte. Es funktioniert gut – png