我想用Kotlin为我的Android应用程序中的SharedPreference创建一个辅助类。不幸的是,我需要Context,但我不想每次调用首选项时都将其设置为参数。
如果我使用伴生对象来保存Context,并在应用程序启动时设置它,我会收到以下错误:不要将Android上下文类放入静态字段中;这会导致内存泄漏(并且也会破坏Instant Run)。
那么如何在不传递参数的情况下获取Context以调用首选项呢?
如果我使用伴生对象来保存Context,并在应用程序启动时设置它,我会收到以下错误:不要将Android上下文类放入静态字段中;这会导致内存泄漏(并且也会破坏Instant Run)。
那么如何在不传递参数的情况下获取Context以调用首选项呢?
var isWorking: Boolean
get() = getBoolean(IS_WORKING)
set(isWorking) = setPreference(IS_WORKING, isWorking)
private fun setPreference(key: String, value: Boolean) {
val editor = settings.edit()
editor.putBoolean(key, value)
editor.commit()
}
private val settings: SharedPreferences by lazy {
context.getSharedPreferences("prefs", Context.MODE_PRIVATE)
}