Notice
Recent Posts
Recent Comments
Link
투케이2K
98. (TWOK/UTIL) [Android/Kotlin] S_Preference - 프리퍼런스 관리 클래스 본문
[설 명]
프로그램 : Android / Kotlin
설 명 : S_Preference - 프리퍼런스 관리 클래스
[소스 코드]
package kr.co.two2k.manager
import android.content.Context
import android.content.SharedPreferences
class S_Preference {
/**
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 모바일 내부 데이터 저장 수행 클래스 (앱 종료 시에도 유지 / 앱 삭제 시 초기화)
* // -----------------------------------------
* 2. 저장된 전체 key 확인 : S_Preference.getTotalKey(getApplication()) // 저장된 전체 key 값 확인
* // -----------------------------------------
* 3. 전체 데이터 삭제 : S_Preference.clear(getApplication()) // 저장된 데이터 삭제
* // -----------------------------------------
* 4. String 저장 : S_Preference.setString(getApplication(), "Name", "Data_Twok2K") //특정 데이터 저장한다
* // -----------------------------------------
* 5. String 호출 : S_Preference.getString(getApplication(), "Name") //저장된 특정 데이터 불러온다
* // -----------------------------------------
*/
// TODO [빠른 로직 찾기 : 주석 로직 찾기]
/**
* // -----------------------------------------
* // [SEARCH FAST] : [프로세스 시작 및 종료 시 프리퍼런스 데이터 초기화]
* // -----------------------------------------
*/
// TODO [companion object >> static 선언 실시]
companion object {
//TODO [전역 변수]
val PREFERENCES_NAME = "rebuild_preference"
private val DEFAULT_VALUE_STRING = ""
private val DEFAULT_VALUE_BOOLEAN = false
private val DEFAULT_VALUE_INT = -1
// TODO [클래스 명칭 선언 실시]
private val ACTIVITY_NAME = "S_Preference"
//TODO [객체 생성]
private fun getPreferences(context: Context): SharedPreferences {
return context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE)
}
//TODO [전체 key 값 저장]
fun setTotalKey(context: Context, key: String?, value: String?) {
val prefs = getPreferences(context)
val editor = prefs.edit()
editor.putString(key, value)
editor.commit()
editor.apply()
}
//TODO [String 값 저장]
fun setString(context: Context, key: String, value: String?) {
val prefs = getPreferences(context)
val editor = prefs.edit()
editor.putString(key, value)
editor.commit()
editor.apply()
// [전체 데이터에 키 저장]
var data: String? = ""
data = getTotalKey(context)
if (data!!.contains("[$key]") == false) {
data = "$data[$key]"
setTotalKey(context, "TotalKeyAllTwoK", data)
}
}
//TODO [boolean 값 저장]
fun setBoolean(context: Context, key: String, value: Boolean) {
val prefs = getPreferences(context)
val editor = prefs.edit()
editor.putBoolean(key, value)
editor.commit()
editor.apply()
// [전체 데이터에 키 저장]
var data: String? = ""
data = getTotalKey(context)
if (data!!.contains("[$key]") == false) {
data = "$data[$key]"
setTotalKey(context, "TotalKeyAllTwoK", data)
}
}
//TODO [int 값 저장]
fun setInt(context: Context, key: String, value: Int) {
val prefs = getPreferences(context)
val editor = prefs.edit()
editor.putInt(key, value)
editor.commit()
editor.apply()
// [전체 데이터에 키 저장]
var data: String? = ""
data = getTotalKey(context)
if (data!!.contains("[$key]") == false) {
data = "$data[$key]"
setTotalKey(context, "TotalKeyAllTwoK", data)
}
}
//TODO [전체 Key 값 호출]
fun getTotalKey(context: Context): String? {
val prefs = getPreferences(context)
return prefs.getString("TotalKeyAllTwoK", DEFAULT_VALUE_STRING)
}
//TODO [String 값 호출]
fun getString(context: Context, key: String?): String? {
val prefs = getPreferences(context)
return prefs.getString(key, DEFAULT_VALUE_STRING)
}
//TODO [boolean 값 호출]
fun getBoolean(context: Context, key: String?): Boolean {
val prefs = getPreferences(context)
return prefs.getBoolean(key, DEFAULT_VALUE_BOOLEAN)
}
//TODO [int 값 호출]
fun getInt(context: Context, key: String?): Int {
val prefs = getPreferences(context)
return prefs.getInt(key, DEFAULT_VALUE_INT)
}
//TODO [전체 key 값에서 특정 값 삭제]
fun removeTotalKey(context: Context, key: String) {
if (getTotalKey(context)!!.contains("[$key]") == true) {
var data = getTotalKey(context)
data = data!!.replace("[$key]", "")
setTotalKey(context, "TotalKeyAllTwoK", data)
}
}
//TODO [특정 key 값 데이터 삭제]
fun removeKey(context: Context, key: String) {
val prefs = getPreferences(context)
val edit = prefs.edit()
edit.remove(key)
edit.commit()
// [전체 데이터에서 키값 삭제]
if (getTotalKey(context)!!.contains("[$key]") == true) {
removeTotalKey(context, key)
}
}
//TODO [전체 key 값 데이터 삭제 삭제]
fun clear(context: Context) {
val prefs = getPreferences(context)
val edit = prefs.edit()
edit.clear()
edit.commit()
// [전체 데이터 삭제]
var data: String? = ""
data = getTotalKey(context)
if (data!!.length > 0 && data == "" == false) {
setTotalKey(context, "TotalKeyAllTwoK", "")
}
}
// TODO [인트로 화면 실행 시 초기화 해야하는 프리퍼런스 데이터 : A_Intro : onCreate]
fun introCreateClear(context: Context) {
}
// TODO [앱 종료 시 초기화 해야하는 프리퍼런스 데이터 : A_Main : onDestroy]
fun mainFinishClear(context: Context) {
}
// TODO [프로세스 시작 시 초기화 해야하는 프리퍼런스 데이터 : S_Application : onCreate]
fun proccessCreateClear(context: Context) {
}
// TODO [프로세스 종료 시 초기화 해야하는 프리퍼런스 데이터 : S_ProgramTaskService : onTaskRemoved]
fun proccessFinishClear(context: Context) {
}
// TODO [메인 웹뷰 리로드 시 초기화 데이터 : A_Main : onResume]
fun webViewReloadClear(context: Context) {
}
}
} // TODO [클래스 종료]
반응형
'투케이2K 유틸파일' 카테고리의 다른 글
Comments