簡體   English   中英

如何使用 Preference.OnPreferenceChangeListener 模擬 onPreferenceChanged()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM