나는 질문이 이유와 더 관련이 있다고 생각합니다
PreferenceManager.getDefaultSharedPreferences(this).getAll()
표준 Java 맵을 반복하는 방법보다 비어 있거나 모순되는 맵을 반환합니다. 안드로이드 문서는 정말 여기에서 무슨 일이 일어나고 있는지에 대한 명확한 결정이 아니라 기본적으로는 것 같아 지금까지 첫 번째 호출 에
PreferenceManager.setDefaultValues(this, R.xml.preferences,false)
-앱을 시작할 때 환경 설정을 초기화하기 위해 호출해야하는 것입니다-나중에 xml 환경 설정 파일에 대한 변경 사항이 일관되지 않게 처리되도록하는 일종의 캐시 된 환경 설정을 생성합니다. 즉, 불일치가 발생합니다. 귀하의 질문에 설명되어 있습니다.
이 "캐시 된 엔티티"를 재설정하려면 다음 단계를 따르십시오 (위 링크에서 생성 할 수 있음).
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().clear();
PreferenceManager.setDefaultValues(this, R.xml.preferences, true);