SharedPreferences를 사용하여 응용 프로그램의 여러 활동 내에서 값을 쓰고 나중에 읽습니다. 그것은 잘 작동하지만 최근에는 sincronized되지 않은 경우처럼 보인다. 내 말은, 나는 값을 쓰지 만, 다른 활동은 여전히 이전 값을 읽는다. 때로는 정확하게 작동합니다. 아이디어가 있으십니까? 편집SharedPreferences는 이전 값을 읽습니다.
:
첫째, 스레드에서 : 경보 수신기에서
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);
: 이 샘플 코드
SharedPreferences prefs = contexto.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
int value = prefs.getInt("ComandToDo", -1);
그리고 여기에 값 "때문에 문제가 온다 "스레드에 쓰여진 값이 아닙니다.
당신이 읽고 다른 스레드에 기록하고 있습니까 :
알람을 만드시겠습니까? 읽고 쓰는 곳의 코드를 게시하십시오. – Ralgha
예, diffetent 스레드, 활동, 브로드 캐스트 리시버, ... 여러 곳. 스레드가 SharedPreferences에 값을 쓰는 것을 상상해보십시오. 그런 다음 알람을 생성합니다. broadcastreceiver는 몇 분 후에 그 값을 읽습니다. 그러나 그것은 업데이트되지 않았습니다! – Ton
값을 읽고 쓰는 곳에서 코드를 볼 필요가 있습니다. – Ralgha