Używam SharedPreferences do pisania i późniejszego czytania wartości w różnych działaniach w mojej aplikacji. Kiedyś pracowało się dobrze, ale ostatnio wygląda na to, że nie było sincronizowane. Mam na myśli, że piszę wartość, ale wtedy druga aktywność nadal odczytuje starą wartość. Czasami działa poprawnie. Każdy pomysł?SharedPreferences czyta stare wartości
EDIT: To jest przykładowy kod:
Po pierwsze, z wątku:
SharedPreferences prefs = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("ComandToDo", value);
editor.commit();
... some code later:
alarmmanager.set(AlarmManager.RTC_WAKEUP, Miliseconds, sender);
W odbiorniku alarmowego:
SharedPreferences prefs = contexto.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
int value = prefs.getInt("ComandToDo", -1);
I tu pojawia się problem, bo „wartości "nie jest wartością zapisaną w wątku.
robisz je odczytuje i zapisuje w różnych wątków? Opublikuj kod, w którym czytasz i piszesz. – Ralgha
tak, różne wątki, czynności, odbiorniki radiowe, ... wiele miejsc. Wyobraź sobie: wątek zapisuje wartość w SharedPreferences. Następnie tworzy alarm. Odbiornik radiowy odczytuje tę wartość kilka minut później. Ale nie jest aktualizowany! – Ton
Musisz zobaczyć kod, w którym również czytasz i zapisujesz wartości. – Ralgha