mozilla
Your Search Results

    nsIIdleService

    « XPCOM API Reference

    Please add a summary to this article.
      最終更新: Gecko 1.9a

    概要

    アイドルサービスは、ユーザがどのくらいの時間「アイドル状態」であるか、つまり、マウスやキーボードなどを使っていない時間を監視できるようにするサービスです。アイドル時間を直接取得することも可能ですが、所定の間隔でオブザーバを登録する使い方が一般的でしょう。

    現在のところ、nsIIdleService の実装は、Windows、Mac OS X、Linux (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 ユーザが最後に操作を行ってから経過したミリ秒単位での時間。 読み取り専用

    メソッド

    addIdleObserver()

    ユーザの操作が一定時間アイドル状態になった場合や、アイドル状態から復帰した際に通知を受けるオブザーバを追加します。

    void addIdleObserver(
      in nsIObserver observer,
      in unsigned long time
    )
    
    パラメータ
    <tt>observer</tt>
    通知を受ける オブザーバ
    <tt>time</tt>
    オブザーバに通知が行われるまでのユーザのアイドル時間 (秒)
    備考
    • オブザーバが受け取る通知のサブジェクトは、常に nsIIdleService そのものです。ユーザがアイドル状態になった時、オブザーバのトピックは「idle」となり、復帰時には「back」となります。通知のデータパラメータには現在のユーザのアイドル時間が含まれます。
    • 同じオブザーバを 2 回追加することができます。
    • 大半の実装は、アイドル情報を取得するために OS に問い合わせを行う必要があります。これは、その実装の問い合わせ間隔によって、通知に遅延が生じる可能性があるということです。この間隔は、現在の実装では 5 秒となっています。

    removeIdleObserver()

    addIdleObserver で登録されたオブザーバを削除します。

    void removeIdleObserver(
      in nsIObserver observer,
      in unsigned long time
    )
    
    パラメータ
    <tt>observer</tt>
    削除する オブザーバ
    <tt>time</tt>
    オブザーバに通知が行われるまでのユーザのアイドル時間 (秒)
    備考

    オブザーバの削除は、指定したアイドル時間のオブザーバについて 1 回だけ行われます。オブザーバを複数追加した場合は、個別に削除する必要があります。

    サンプルコード

    例 1:

    var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
                                .getService(Components.interfaces.nsIIdleService)
    setTimeout(function() { alert(idleService.idleTime) }, 1000)
    // このコードを追加した後、マウスやキーボードを操作しないと、
    // 1000 前後の数字が警告ダイアログで表示されます。
    

    例 2:

    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); // 1 分
    // ...
    // removeIdleObserver を使ってオブザーバを削除するのを忘れずに!
    idleService.removeIdleObserver(idleObserver, 60);
    
     

    ドキュメントのタグと貢献者

    Contributors to this page: Kohei, teoli, Mgjbot
    最終更新者: teoli,