본문 바로가기
+)기록/과제

정리사항 63 - SharedPreference(내부저장소)의 edit apply()와commit()

by AppJinny 2023. 5. 12.

*SharedPreference edit apply()와 commit()

editor.apply()는 SharedPreferences에 데이터를 비동기적으로 저장하는 메서드입니다. 비동기적으로 저장되기 때문에, 데이터 저장 작업이 수행 중일 때 앱이 멈추지 않고 계속 실행됩니다. 이렇게 하면 앱이 더 빠르게 실행될 수 있습니다.

editor.commit()데이터를 동기적으로 저장하는 메서드입니다. 데이터 저장 작업이 완료될 때까지 앱이 멈추게 됩니다. 이는 작업이 끝날 때까지 대기해야 하는 경우에는 사용할 수 있습니다.

그러나 일반적으로 editor.apply()를 사용하는 것이 좋습니다. 이는 데이터 저장 작업이 비동기적으로 수행되기 때문에, 앱이 끊김 없이 더 부드럽게 실행될 수 있기 때문입니다. 또한, editor.apply()는 editor.commit()보다 더 빠르게 작동하기 때문에, 데이터가 많은 경우에도 효율적입니다.

 

-코드 예시

//입력값 저장소 저장
SharedPreferences prefs;
prefs = getContext().getSharedPreferences(key, Context.MODE_PRIVATE);
prefs.edit().putString(key, value).commit();

//저장소에 저장(두 가지 값 저장할 때)
SharedPreferences.Editor editor = getContext().getSharedPreferences("appRebootTime", Context.MODE_PRIVATE).edit();
editor.putInt("hour", hour);
editor.putInt("minute", minute);
editor.apply();