如何在Kotlin中使用OnSharedPreferenceChangeListener?

huangapple go评论118阅读模式
英文:

How to use OnSharedPreferenceChangeListener in Kotlin?

问题

  1. 我有一个Activity其中包含一个可变的数字以及一个(InputMethodService)服务类该类从Activity中获取一个数字
  2. 我想要的是当我在Activity中更改可变数字时能够在服务类中反映出来
  3. 因此我编写了以下代码但它没有起作用是否有错误或错误的代码
  4. class Activity : AppCompatActivity() {
  5. override fun onCreate() {
  6. var customNumber: Int = 100
  7. val myPreference = getSharedPreferences("number", Context.MODE_PRIVATE)
  8. myPreference.edit().putInt("changeNumber", customNumber).apply()
  9. }
  10. }
  11. 在服务中Activity获取数字):
  12. class myService : InputMethodService(), SharedPreferences.OnSharedPreferenceChangeListener {
  13. var changedNumber: Int = 0
  14. override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
  15. changedNumber = sharedPreferences!!.getInt("changeNumber", 0)
  16. }
  17. }
英文:

I have a Activity that has variable number and a (InputMethodService) Service class that gets a number from the activity.

What I want is that when I change variable number in activity, that reflects on service class.

So I wrote the code like this, but It didn't work. Is there a mistake or wrong code?

  1. class Activity : AppCompatActivity() {
  2. override fun onCreate() {
  3. var customNumber: Int = 100
  4. val myPreference = getSharedPreference("number", Context.MODE_PRIVATE)
  5. myPreference.edit().putInt("changeNumber", customNumber).apply()
  6. }
  7. }

in Service ( get number from activity )

  1. class myService : InputMethodService(), SharedPreferences.OnSharedPreferenceChangeListener {
  2. var changedNumber: Int = 0
  3. override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
  4. changedNumber = sharedPrefrences!!.getInt("changeNumber", 0)
  5. }
  6. }

答案1

得分: 0

看起来你忘记了注册/注销监听器:

https://stackoverflow.com/a/3799894/7434090

英文:

It looks like you're forgetting to register/unregister the listener:

https://stackoverflow.com/a/3799894/7434090

huangapple
  • 本文由 发表于 2020年8月27日 14:12:29
  • 转载请务必保留本文链接:https://go.coder-hub.com/63610172.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定