본문 바로가기

안드로이드/안드로이드

[안드로이드] SharedPreferences

정보 또는 데이터를 앱 자체에 저장하는 인터페이스다.

 

이는 데이터베이스와는 다르며 Key & Value 값으로 저장된다.

 

주로 앱 환경설정에 사용된다.

 

사용 방법

MyApplication.kt

 

SharedPreferences는 context를 필요로 한다.

따라서 어디서든 불러 사용할 수 있도록 MyApplication에서 호출한다.

class MyApplication : Application() {
    companion object {
        lateinit var prefs: PreferenceUtil
    }
    override fun onCreate() {
        prefs = PreferenceUtil(applicationContext)
        super.onCreate()
    }
}

 

 

preferenceUtil.kt

class PreferenceUtil (context: Context) {
    private val prefs: SharedPreferences =
        context.getSharedPreferences("prefs_name", Context.MODE_PRIVATE)

    fun getString(key: String, defValue: String): String {
        return prefs.getString(key, defValue).toString()
    }

    fun setString(key: String, str: String?) {
        prefs.edit().putString(key, str).apply()
    }
}

 

Activity

MyApplication.pref.setString("key", "value")
MyApplication.pref.getString("key", defvalue)

다음과 같이 사용할 수 있으며

 

defvalue는 해당 key 값에 value가 설정되어 있지 않다면, defvalue 값을 반환한다.