Android/Java
안드로이드 SharedPreferences Singleton 생성
easy-1
2021. 6. 10. 17:36
<개요>
데이터를 로컬에 저장하는데 사용되는 SharedPreferences 클래스를 매번 호출하기보다
Singleton 으로 만들어 매번 객체를 생성하는 메모리 낭비를 줄일 수 있음
<적용 방법>
1. 싱글톤 PrefsHelper 클래스 생성
2. 각 데이터 타입에 맞게 read, write 모두 할 수 있도록 생성
public class PrefsHelper {
public static final String PREFERENCE_NAME = "HELPER";
private static SharedPreferences prefs;
private static SharedPreferences.Editor prefsEditor;
// SingleTon 으로 생성
private static class LazyHolder {
public static final PrefsHelper uniqueInstance = new PrefsHelper();
}
public static PrefsHelper getInstance() {
return LazyHolder.uniqueInstance;
}
// init
public static void init(Context context) {
prefs = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
prefsEditor = prefs.edit();
}
// String read, write
public static String read(String key, String defValue) {
return prefs.getString(key, defValue);
}
public static void write(String key, String value) {
prefsEditor.putString(key, value).apply();
}
// Integer read, write
public static Integer read(String key, int defValue) {
return prefs.getInt(key, defValue);
}
public static void write(String key, Integer value) {
prefsEditor.putInt(key, value).apply();
}
// boolean read, write
public static boolean read(String key, boolean defValue) {
return prefs.getBoolean(key, defValue);
}
public static void write(String key, boolean value) {
prefsEditor.putBoolean(key, value).apply();
}
// clear
public static void destroyPref() {
prefsEditor.clear().apply();
}
}