Ho trovato tutte le risposte qui e ho provato tutte le soluzioni, tuttavia le mie preferenze condivise non sono persistenti.Preferenze condivise non persistenti dopo il riavvio dell'app
Ecco il mio codice:
public static void setActivated(boolean activated) {
SharedPreferences sp = Utils.getContext().getSharedPreferences(
USER_PREFS, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putBoolean(ASD, activated);
editor.commit();
}
public static boolean isActivated() {
SharedPreferences sp = Utils.getContext().getSharedPreferences(USER_PREFS, Context.MODE_PRIVATE);
return sp.getBoolean(ASD, true);
}
ho provato anche:
editor.clear();
editor.put ..
editor.commit();
Ho anche provato con
editor.apply();
Ho anche provato con entrambi .Applicare() e .commit() e senza fortuna.
Un'altra idea era quella di provare a utilizzare una modalità diversa per i file:
...getSharedPreferences(USER_PREFS, Context.MODE_MULTI_PROCESS);
Il problema è che i valori salvati non sono persistenti. Se chiudo l'app e la riapri i valori sono tutti sbagliati.
Qualcuno ha qualche idea? Vorrei anche ricordare che il problema riguarda solo alcuni dispositivi, ad esempio l'HTC One S, il Samsung Galaxy S3 (ho provato su un altro S3 e ha funzionato perfettamente).
MODIFICA: chiamo il salvataggio su un pulsante click listener e chiamo isActivated quando carico il frammento (dopo onViewCreated()).
Grazie!
vedere questo: http: //stackoverflow.com/questions/23654853/radiobuttons-and-spinners-in-shared-preferences/23655104#23655104 –
avendo lo stesso problema ... ho notato che il problema succede solo se riavvio l'app mentre il processo è ancora attivo (secondo DDMS) - in questo caso sembra che venga utilizzato un file di preferenze separato. Se uccido il processo in DDMS e riavvio in seguito - nessun problema ... – Lez77