mozilla
您的搜索结果

    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

    文档标签和贡献者

    Contributors to this page: ziyunfei, hanyuxinting
    最后编辑者: ziyunfei,