假设我的Firefox扩展程序有多个首选项,但其中一些是分组的,例如检查间隔,失败重试间隔,目标网址。这些仅用于单一功能。
当我订阅首选项服务并添加观察者时,将为每个更改的首选项调用observe
回调,因此如果用户偶然更改了组中的所有设置,那么我将不得不执行相同的例程对于同一个子系统,因为我在该首选项组中有多个项目。这是一个很好的冗余!
我想要的是observe
只为一组首选项调用一次。说
extensions.myextension.interval1
extensions.myextension.site
extensions.myextension.retry
因此,如果更改了其中一个或所有首选项,我只会收到1个关于它的通知。换句话说,无论分支中有多少首选项更改,我都希望observe
回调调用一次。
答案 0 :(得分:0)
当您在分支上注册pref观察者时(在您的情况下,extensions.myextension),它会通知您有关每个首选项更改的信息。没有办法让它只告诉你一次关于分支的变化。调用observe方法时,您会获得更改的首选项的名称(它是第三个参数)。你必须根据它来过滤你的回调。