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

nsIIdleService

« XPCOM API Reference

Please add a summary to this article.
  Last changed in 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 1000분의 1초 단위의 마지막 사용자 동작 이후 지난 시간. 읽기 전용.

메소드

addIdleObserver()

사용자가 특정 시간 동안 유휴일 때와 유휴 상태에서 돌아올 때 알림을 받을 관찰자를 추가합니다.

void addIdleObserver(
  in nsIObserver observer,
  in unsigned long time
)
매개 변수
<tt>observer</tt>
알림을 받을 관찰자
<tt>time</tt>
관찰자에게 알리기 전에 사용자가 유휴 상태이어야 하는 초 단위 시간.
참고
  • 관찰자가 받게 되는 알림의 제목은 항상 nsIIdleService 자체입니다. 사용자가 유휴가 되면 관찰자 주제는 'idle'이고 다시 돌아오면 관찰자 주제는 'back'입니다. 알림의 data 매개 변수는 현재의 사용자 유휴 시간을 포함하고 있습니다.
  • 같은 관찰자를 두 번 추가할 수 있습니다.
  • 대부분의 구현은 유휴 정보를 위해서 운영체제를 정기적으로 확인해야 합니다. 이는 구현의 확인 간격 만큼 알림이 지연되어 도착할 수 있다는 뜻입니다. 현재의 구현은 5초 간격을 사용하고 있습니다.

removeIdleObserver()

addIdleObserver로 등록한 관찰자를 제거합니다.

void removeIdleObserver(
  in nsIObserver observer,
  in unsigned long time
)
매개 변수
<tt>observer</tt>
삭제할 관찰자
<tt>time</tt>
관찰자가 기다리던 시간
Remarks

관찰자는 것은 여러분이 지정한 유휴 시간에 대하여 한 번 제거하게 됩니다. 관찰자를 여러 번 추가했다면 그 수 만큼 제거

예제 코드

예제 1:

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.

예제 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); // one minute
// ...
// Don't forget to remove the observer using removeIdleObserver!
idleService.removeIdleObserver(idleObserver, 60);

Interwiki Language Links

문서 태그 및 공헌자

 최종 변경: teoli,