安卓系统-事件队列-在设置首选项后执行



我正在重新安排属性更改后的警报。我需要阅读各种变量。问题是,当我从OnPreferenceChangeListener运行函数时,这个函数会看到旧的preference值。

我想做一些我从AWT/Swing开发中了解到的事情:将命令添加到事件队列中,这样它将在处理完UI事件后执行,也就是说在完成偏好更改操作后执行。问题是……我在安卓系统中没有发现类似EventQueue的东西。我只找到了runOnUiThread操作,这不是我所需要的,因为根据规范,如果我们已经在UI线程中,命令将立即执行。

那么,你能帮我吗,我需要用什么?也许我搜索错了关键词。。。。

在我的情况下,我使用了错误的OnPreferenceChangeListener在首选项更改阶段使用,在单个首选项上注册,应该用于首选项值验证。

这就是我需要注册的侦听器,它将在首选项已经更改后被调用。这项任务是用OnSharedPreferenceChangeListener完成的,它将在任何偏好更改后调用,并且应用程序已经可以看到更改:

    PreferenceManager.getDefaultSharedPreferences(this)
        .registerOnSharedPreferenceChangeListener(
            new OnSharedPreferenceChangeListener() {
        public void onSharedPreferenceChanged(
                SharedPreferences sharedPreferences, String key) {
            if (MYKEY1.equals(key) 
                    || MYKEY2.equals(key)) {
                 doSomething();
            }
        }
    });

相关内容

  • 没有找到相关文章

最新更新