最好的地方放onShared preferenceChangeListener [英] Best place to put onSharedPreferenceChangeListener

查看:541
本文介绍了最好的地方放onShared preferenceChangeListener的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想添加一个设置我的应用程序。我已经添加了新的设置,但我不知道在哪里把 OnShared preferenceChangeListener 。我把它的活动,并增加了一个 Log.d(),而 Log.d()从不触发。任何想法?

I am trying to add a setting to my app. I have added the new setting but I am not sure where to put OnSharedPreferenceChangeListener. I put it in the activity and added a Log.d(), but the Log.d() is never triggered. Any ideas?

推荐答案

根据的 Android设置文档将是:

@Override
protected void onResume() {
    super.onResume();
    getPreferenceScreen().getSharedPreferences()
            .registerOnSharedPreferenceChangeListener(this);
}

@Override
protected void onPause() {
    super.onPause();
    getPreferenceScreen().getSharedPreferences()
            .unregisterOnSharedPreferenceChangeListener(this);
}

你应该存储在一个字段变量的监听器(或使用活动对象本身 - 在上面的源代码code),所以它不会被回收。

And you should store the listener in a field variable (or use the Activity object itself - as in the above source code), so that it does not get garbage collected.

即。匿名类对象不能被用作 OnShared preferenceChangeListener

I.e. an anonymous class object can't be used as OnSharedPreferenceChangeListener.

这篇关于最好的地方放onShared preferenceChangeListener的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆