Android 如何使用Preference.OnPreferenceChangeListener模拟onPreferenceChanged()
Android Jetpack首选项有一个click listenerAndroid 如何使用Preference.OnPreferenceChangeListener模拟onPreferenceChanged(),android,android-preferences,android-jetpack,android-settings,Android,Android Preferences,Android Jetpack,Android Settings,Android Jetpack首选项有一个click listener首选项。On PreferenceClickListener和Preference change listener首选项。On PreferenceChangeListener。但是,当值更改时,没有任何侦听器,即每当成功更新首选项时调用的侦听器 用例 我有一个后台服务,它做了大量的工作。它从多个地方开始,然后从SharedReferences读取一个值 现在,问题是,当服务从OnPreferenceChange()启动并尝试
首选项。On PreferenceClickListener
和Preference change listener首选项。On PreferenceChangeListener
。但是,当值更改时,没有任何侦听器,即每当成功更新首选项时调用的侦听器
用例
我有一个后台服务,它做了大量的工作。它从多个地方开始,然后从SharedReferences
读取一个值
现在,问题是,当服务从OnPreferenceChange()
启动并尝试读取SharedReferences
值时,该值尚未更新
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()
}
应在更改首选项后调用此函数