공유 환경 설정에서 부울 값을로드하려고합니다. 첫 번째 실행시에는 공유 환경 설정에 저장 한 적이 없어서 TRUE 여야합니다. 그러나, 나는 어떻게 든 잘못되고있다.공유 환경 설정이 올바르게 가져 오기되지 않습니다.
아래 코드를 참조하십시오.
settings = context.getSharedPreferences(SAVED_PREFERENCES, 0);
isFirstLaunch = settings.getBoolean(FIRST_LAUNCH, true);
Log.d(TAG, "loadIsFirstLaunch: " + isFirstLaunch);
p.s. 100 % 전에 공유 환경 설정에서 FIRST_LAUNCH 값을 저장하지 않았습니다.
UPD1 빈 프로젝트로 두 번 확인했습니다. 코드가 올바르게 작동합니다. 공유 기본 설정은 부울 기본 유형이 아닌 부울 클래스를 사용합니다. 따라서 기본적으로 부울 값이 false 인 것은 아닙니다. 또한 디버깅에 따라 공유 된 환경 설정에는 시작될 때까지 FIRST_LAUNCH 값이 포함됩니다. 그래서 어떻게 거기에 도착했는지 보았습니다.
UPD2 마지막으로 붙였습니다. FirstLaunch에 대한 모든 언급을 삭제했지만 다른 값을 읽는 다른 호출이있을 때 SharedPreferences에 여전히 어떻게 든 나타납니다. 그래서 질문은 - 공유 된 환경 설정에서 저장된 값을 제거하는 방법입니다. http://take.ms/Rr0Xf
UPD3 내 저장된 환경 설정 파일의 이름을 변경 한 그것은했다. 문제는 응용 프로그램을 새로 설치 한 후에도 일부 장치가 저장된 기본 설정에 대한 정보를 유지하고 있다는 것입니다. PFM.
은 환경 설정 데이터 삽입 및 읽기를위한 전체 코드를 공유합니다. –
기본값은 true 여야합니다. –
충분한 소스 코드 문제에 대한 충분한 정보를 제공 할 때까지 아무도 도움을 줄 수 없습니다 .. –