안드로이드(Kotlin)

Kotlin 코틀린의 SharedPreferences

영드로이드개발자 2022. 8. 8. 14:31
반응형

SharedPreferences

정의

간단한 데이터를 저장하고 불러올 수 있다.

 

어플을 꺼도 데이터가 유지된다는 점에서 간편한 데이터베이스 역할을 할 수 있다.

 

ShardPreferences는 어플리케이션에서 파일 형태로 데이터를 저장한다.

 

데이터는 (key, value) 형태로 shared_prefs 폴더 안에 xml 파일로 저장된다. 해당 파일은 어플리케이션이 삭제되기 전까지 보존된다.

 

SharedPreferences 사용방법

SharedPreferences는 app에서 전역적으로 사용한다.

 

따라서 싱글톤 패턴을 사용하여 앱 어디든 접근이 가능하게 만드는 것이 좋다.

 

SharedPreferences 클래스는 앱에 있는 다른 액티비티보다 먼저 생성되어야 다른 곳에 데이터를 넘겨줄 수 있다.

 

따라서 Application에 해당하는 클래스를 생성하고나서 전역변수로 ShardPreferences를 가져야 한다.

Application을 상속받는 MyApplication을 생성하고 onCreate보다 preferences를 먼저 초기화하여 준다.

 

MyApplication.kt

class MyApplication : Application() {
    companion object{
        lateinit var preferences: PreferenceUtil
    }

    override fun onCreate() {
        preferences = PreferenceUtil(applicationContext)
        super.onCreate()
    }
}

 

 

PreferenceUtil.kt

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

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

    fun setString(key: String, defValue: String){
        preferences.edit().putString(key, defValue).apply()
    }
}

 

이제 이것을 통해

MyApplication.preferences.getString("연습","입니다.")

MyApplication.preferences.setString("연습","안해요.")

이렇게 사용하면 된다.

반응형