적용과 커밋의 차이점을 알고 있습니다. 제 경우에는 commit()
을 사용하고 싶지만, 안드로이드는 백그라운드에서 실행되고 메인 스레드를 차단하지 않기 때문에 apply()
을 사용하도록 제안합니다.SharedPreferences - apply() 대 commit()
신청서를 사용하면이 기능이 작동합니까? 아니면 신청하기 전에 신청서를 업데이트하지 않았습니까?
editor.putBoolean("TEST", true)
editor.apply()
if (preferences.getBoolean("TEST")) {
//do something
}
"commit()"과 같은 함수가있는 이유는 무엇입니까? –
커밋은 쓰기가 성공했는지 여부를 알아야 할 경우 유용합니다. 이 정보를 사용하지 않으면, 항상 apply를 사용한다. –
원래의 API 레벨 1에'commit()'이 존재하고, API 레벨 9에'apply()'가 도입되었다.'commit()'는'true'를 반환한다. 디스크에 쓰기 작업이 성공한 반면,'apply()'를 사용하면 최상의 결과를 기대할 수 있습니다. –