删除chrome扩展中的chrome.alarms侦听器

时间:2014-02-22 19:17:20

标签: javascript google-chrome google-chrome-extension

在Chrome扩展程序中,使用以下示例代码创建警报并添加监听器非常容易:

chrome.alarms.create(idAlarm, {
    when: dateAlarm,
    periodInMinutes: parseInt(repeatAlarm)
});
chrome.alarms.onAlarm.addListener(function (alarm) {
  //TODO with Listener (when alarm is activated)
)};

但是,稍后,如果我打电话

crome.alarms.clear(idAlarm);

警报已清除,但监听器仍处于活动状态。什么是“动态”删除特定警报的监听器的最佳方法?

我认为我必须致电chrome.alarms.onAlarm.removeListener(),但没有办法让这个电话有效。

1 个答案:

答案 0 :(得分:2)

我绝对不是关于chrome扩展的专家(从来没有写过),但是看看文档,我认为你必须命名听众函数然后这样做:

function alarmListener(alarm) {
    if (alarm == "myAlarmIdentifier") {
        // Do stuff.
    }
}
chrome.alarms.create("myAlarmIdentifier", {
    when: dateAlarm,
    periodInMinutes: parseInt(repeatAlarm)
});
chrome.alarms.onAlarm.addListener(alarmListener);

然后删除闹钟和remove the listener

chrome.alarms.clear("myAlarmIdentifier");
chrome.alarms.onAlarm.removeListener(alarmListener);