![](/img/trans.png)
[英]How do I check the value of a preference after using OnPreferenceChangeListener?
[英]How to mimic onPreferenceChanged() using Preference.OnPreferenceChangeListener
Android Jetpack Preferences 有一個點擊監聽器Preference.OnPreferenceClickListener
和偏好更改監聽器Preference.OnPreferenceChangeListener
。 但是,當值更改時沒有任何偵聽器,即在成功更新首選項時調用的偵聽器。
用例
我有一個后台服務,它做了大量的工作。 它從多個地方開始,然后從SharedPreferences
讀取一個值。
現在,問題是,當服務從OnPreferenceChange()
啟動並嘗試讀取SharedPreferences
值時,該值尚未更新。
override fun onPreferenceChange(preference: Preference?, newValue: Any?): Boolean {
// here newValue is of no use
startService()
return true
}
你可以使用
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
sharedPreferences.registerOnSharedPreferenceChangeListener { _, _ ->
startService()
}
這應該在更改首選項后調用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.