我选择了让每个Activity实现onSharedPreferenceChangedListener的路径。 为了让服务更新值一次发送回多个活动(它不关心哪一个有焦点)
调用监听器时,我只有密钥。然后我必须执行该键的查找以获得相应的View。这是不成功的。我尝试使用getCurrentFocus()然后使用findViewWithTag()。甚至在getFocus()之后尝试了.getRoot()。
出于测试目的,我只是尝试在Listener之外获取View的句柄。我必须确保setText在UIthread内部的runnalbe中运行才能工作。
我看了一些其他代码,如果检查密钥,他们会执行一堆其他代码。我可以这样做动态获取视图的句柄,因为我会知道对应于字符串键的id是什么,但两种方式看起来效率都很低。
这让我想到了整体问题。这是使用XML直接从Preference填充View文本的方法吗?然后,我不必担心实现监听器的不同活动。所有内容都将包含在我可以自由移动的XML文件中。
答案 0 :(得分:0)
为了更新服务 值要发送回几个 活动一下子(它不关心 哪一个有焦点)
为什么不使用广播意图呢?或者通过服务活动注册的监听器对象?
这是使用XML直接从Preference填充View文本的方法吗?
不适用于任意活动。