2013-10-11 1 views
2

동일한 활동에서 2 개 이상의 로더를 지원하는 것으로 나타났습니다. 첫 번째 인수 loaderId를 사용하여 다른 로더를 전환하십시오. SharedPreferencesLoader의 경우 Loader.CallBack에서 서브 클래 싱하는 필드 객체를 만들고 마지막 인수로 LoadManager initLoader 메서드에 전달하면됩니다. 질문 : 시스템 기본값 대신 SharedPreferencesLoader를 사용하는 것이 합당한가? 그 사용을 정당화하는 증거가 있습니까?시스템 기본값 대신 SharedPreferencesLoader를 사용하는 것이 합당한가요?

답변

0

SharedPreferencesLoader 란 무엇입니까? 너 스스로 작성 했니? SharedPreferences에 액세스하기위한 비동기 로더를 사용할 이유가 없습니다.

+0

"SharedPreferencesLoader 란 무엇입니까?" - https://github.com/commonsguy/cwac-loaderex를 참조하십시오. "너 스스로 작성 했니?" - 아니. "SharedPreferences에 접근하기위한 비동기 적 로더를 가질 이유가 없습니다."- 원래, 당신이 SharedPreferences를 참조 할 때 처음으로 현재 쓰레드에서 디스크 I/O를 수행했을 때. 'SharedPreferences' API는 비동기 로딩을 염두에두고 작성되지 않았으므로, 이제는 쓰레드를 포크하는 동안 환경 설정에서 읽기/쓰기를 처음 시도 할 때 현재 쓰레드를 차단합니다. – CommonsWare

+0

따라서 디스크 I/O가 완료 될 때까지 기다리는 기본 응용 프로그램 스레드를 여전히 차단할 수 있습니다. 'Loader'를 사용하는 것은 과도한 일이지만,'SharedPreferences' API는 우리에게 일종의'OnLoadCompletionListener'를주지 않기 때문에, 메인 어플리케이션 스레드를 막지 않도록하는 것이 과잉 될 것입니다. 더 좋은 패턴이 있다면 어딘가에 써주세요. – CommonsWare

관련 문제