2
假设我的Firefox扩展有多个首选项,但其中一些已分组,如检查间隔,失败重试间隔,目标URL。这些仅用于单一功能。Firefox扩展dev:观察首选项,避免多个通知
当我订阅偏好服务并添加观察者时,将为每个更改的偏好调用observe
回调,因此如果偶然用户更改了组中的所有设置,那么我将必须为相同的程序执行相同的程序子系统的次数与我的偏好组中的项目数量相同。这是一个伟大的冗余!
我想要的是observe
只需调用一次即可。说
extensions.myextension.interval1
extensions.myextension.site
extensions.myextension.retry
因此,如果这些偏好的一个或所有更改,我只收到1通知它。换句话说,无论在分支中改变了多少首选项,我都想让observe
回调调用一次。
那么如何在观察者中“过滤”以针对每组偏好运行特定的例程? – Pablo 2010-05-10 23:31:18
您必须跟踪您已收到通知的次数,并且只运行您的代码一次以用于任何X通知,其中X是该pref分支上的首选项数量。 – sdwilsh 2010-05-11 17:23:56
不是一个好的解决方案。希望能有更好的,原生框架结构 – Pablo 2010-05-13 09:40:38