SharedPreferences nicht persistent

8

Ich verwende in Android eine SharedPreferences . Alles funktioniert in derselben Sitzung großartig.

Nach dem Neustart der Anwendung gehen jedoch alle Einstellungen aus der vorherigen Sitzung verloren.

Gibt es irgendetwas, das ich angeben muss, damit die SharedPreferences von "run to run" abhängen?

Ich erstelle die Präferenzen durch Aufruf von

%Vor%

Dann setze ich Eigenschaften wie z. B.

%Vor%

und ich verstehe es

%Vor%

Danke, Victor

    
Victor Grazi 09.02.2012, 04:49
quelle

7 Antworten

26

SharedPreferences sind persistent nach Relaunch, Neustart, ich denke das Problem ist, dass Sie die Einstellungen nicht übernehmen, verwenden Sie folgendes um Werte in den Einstellungen zu speichern:

%Vor%     
jeet 09.02.2012, 05:01
quelle
17

Sie werden Ihre Änderungen wahrscheinlich nicht übernehmen. Legen Sie Eigenschaften wie folgt fest

%Vor%

Ohne das Commit furzt du im Wind.

    
Brian Dupuis 09.02.2012 04:59
quelle
2

Dies funktioniert für mich bitte versuchen:

%Vor%     
deepak Sharma 09.02.2012 04:58
quelle
1

um den Wert in pref

zu erhalten %Vor%

um vlue zu speichern, verwenden Sie onstoe oder onPause methds

%Vor%

Das funktioniert für mich gut und gesund

    
Nixit Patel 09.02.2012 05:15
quelle
1

Wenn Sie für API-Ebene entwickeln? und darüber sollten Sie editor.apply() anstelle von editor.commit() verwenden, wenn Sie Ihre Einstellungen programmatisch ändern. editor.commit() wurde veraltet und editor.apply() behandelt die tatsächliche Persistenz im Hintergrund, was editor.commit() nicht tut.

Beachten Sie, dass editor.apply() , falls es fehlschlägt, dies stillschweigend tut.

    
Phil 04.09.2012 21:46
quelle
1

Dies ist der Code, der für mich funktioniert.

%Vor%     
user3285870 23.03.2014 19:06
quelle
0

Die Einstellungen werden erst gespeichert, wenn Sie sie festgeschrieben haben, z. B .:

%Vor%

BEARBEITEN : Das obige hat einen kleinen Fehler (aus Kommentaren); Sie müssen den Verweis auf das Editorobjekt beibehalten, andernfalls wird das obige Beispiel, das den Wert festschreibt, eine neue Instanz erstellen. Sollte sein:

%Vor%

Als Referenz finden Sie in der Android-Dokumentation :

  

Beachten Sie, dass Sie commit () aufrufen müssen habe irgendwelche Änderungen, die du ausführst   Der Editor wird tatsächlich in SharedPreferences angezeigt.

    
Metro Smurf 09.02.2012 05:00
quelle