Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

nsIIdleService

nsIIdleService 的定义文档是:widget/public/nsIIdleService.idl 。 It is scriptable and unfrozen (hasn't changed since Mozilla 1.9a) .

概要

该服务可使您监测到空闲时间,例如,用户没有进行鼠标或者键盘等操作。您可直接捕获到空闲的时间,但一般,需要注册一个监听。

目前 nsIIdleService 服务在 Windows, Mac OS X, and Linux (via XScreenSaver) 等系统上都已实现。

实现: @mozilla.org/widget/idleservice;1。创建实例如:

var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
                            .getService(Components.interfaces.nsIIdleService)

方法预览

void addIdleObserver(in nsIObserver observer, in unsigned long time)
void removeIdleObserver(in nsIObserver observer, in unsigned long time)

属性

属性 类型 描述
idleTime long The amount of time in milliseconds that has passed since the last user activity. Read only.

方法

addIdleObserver()

添加一个observer,用于侦听使用者何时离开,及何时归来。

void addIdleObserver(
  in nsIObserver observer,
  in unsigned long time
)
参数 
observer
The observer to be notified.
time
   使用者离开多少秒钟后,开始侦听。
备注
  • observer 侦听的 subject 一直是 nsIIdleSerivce 。当空闲时, observer 的 topic 是 'idle' , 当他回来时,将为 'back' 。侦听的参数中包含当前使用空闲的时间。
  • 相同的 observer 可以添加两次。
  • 大多数实现需要自己在 OS 中查询 idle 信息,侦听可能会出现延迟,这取决于在实现中查询的间隔时间的长度。当前实现中使用的是 5 秒钟的延迟时间。

Gecko 1.9.2 note
从版本 Gecko 1.9.2 开始,增加一个新的侦听消息:‘idle-daily’ 。

removeIdleObserver()

删除observer。

void removeIdleObserver(
  in nsIObserver observer,
  in unsigned long time
)
参数
observer
the observer to be removed
time
消息侦听的时间(一段时间)。

备注

删除 observer 时,根据指定的 idle 时间来删除。如果已经添加了多个 observer ,则需要删除多次。

示例:

例一:

var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
                            .getService(Components.interfaces.nsIIdleService)
setTimeout(function() { alert(idleService.idleTime) }, 1000)
// if you don't use the mouse or the keyboard after running this snippet,
// you'll see a number around 1000 alerted.

例二:

var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
                            .getService(Components.interfaces.nsIIdleService)
var idleObserver = {
  observe: function(subject, topic, data) {
    alert("topic: " + topic + "\ndata: " + data);
  }
};
idleService.addIdleObserver(idleObserver, 60); // one minute
// ...
// Don't forget to remove the observer using removeIdleObserver!
idleService.removeIdleObserver(idleObserver, 60);

Interwiki Language Links

文档标签和贡献者

 此页面的贡献者: ziyunfei, hanyuxinting
 最后编辑者: ziyunfei,