--- title: nsIIdleService slug: nsIIdleService tags: - Interfaces - MDC Project - NeedsContent - XPCOM API Reference translation_of: Mozilla/Tech/XPCOM/Reference/Interface/nsIIdleService ---

« XPCOM API Reference

widget/public/nsIIdleService.idl스크립트에서 사용 가능
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>
관찰자에게 알리기 전에 사용자가 유휴 상태이어야 하는 초 단위 시간.
참고

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