SharedPreferences werden nicht gespeichert/geladen in PreferenceActivity

EDIT: Der unten beschriebene problem wurde durch einen sehr eigenartigen Gerät Problem nicht verursacht durch eine Codierung-problem.

Ich habe eine preferenceActivity in denen ich viele checkBoxPreferences.
Die checkBoxPreference ist wohl zu retten, die die Standard-shared-preferences-Datei, und dann wieder aufgerufen werden, wenn ich öffnen Sie die app, um die Aktualisierung der Benutzeroberfläche.

Dies nicht geschieht, wie es wohl werden.
Wenn ich die app schließen und öffnen Sie wieder, meine Werte bleiben wie Sie sind, angenommen zu werden, aber wenn ich den task-manager zum beenden der app oder wenn ich schalten Sie das Telefon (wenn die app nicht läuft), dann wird die defaultValues erneut aufgerufen.

So, ich habe eine SharedPreference in meinem onResume (), um es zu testen.

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

Ich dann überprüfen, um zu sehen, ob es ist ein Schlüssel, sharedpreference.

pref.contains("myCheckBoxPreference");

Wenn ich schließen und öffnen Sie es wieder auf, es wird true zurückgegeben. wenn ich schließen mit dem task-manager oder schalten Sie das Telefon aus und wieder ein, dann gibt Sie false zurück.

So, ich habe versucht, manuell die Einstellung der SharedPreference

SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("myCheckBoxPreference", myCheckBoxPreference.isChecked());
editor.commit();

und dann rief ich, dass, wenn die checkboxpreference Wert geändert. Ich habe auch versucht, Sie anzurufen, es in onStop und onPause. Noch, wenn ich die app schließen und öffnen Sie es wieder auf, pref.enthält den Wert true zurück, aber wenn ich schalten Sie das Telefon aus und wieder ein, gibt Sie false zurück.

So, ich habe dann versucht, mit einer SharedPreferences-Datei.

In der Klasse Erklärung:

public static final String PREFS = "prefs";

Und in der onResume():

SharedPreferences pref = this.getSharedPreferences(PREFS, 0);

Gleiche Verhalten, pref.enthält noch gibt true zurück, wenn ich nur die app schließen und öffnen Sie es wieder auf, aber es gibt false zurück, wenn ich die Stromversorgung des Telefons aus und wieder ein.

Habe ich dann versucht, die änderung der Wert des Schlüssels von myCheckBoxPreference zu etwas, das NICHT mit dem xml-Schlüssel für die CheckBoxPreference, und es hatte immer noch den gleichen Effekt.

Und ich deinstalliert die Anwendung aus dem Telefon, dann angetrieben, das Telefon aus-und wieder einschalten, und dann re-installiert und es hat immer noch den gleichen Effekt.

InformationsquelleAutor der Frage Jakar | 2011-06-27

Schreibe einen Kommentar