Visit Mozilla.org

nsIIdleService

MDC

« XPCOM API Reference

이 문서는 Firefox 개발자들을 위한 정보입니다. Firefox 3

목차

nsIIdleService widget/public/nsIIdleService.idl에 정의되어 있습니다. 인터페이스는 스크립트에서 사용 가능하며 비확정 상태(Mozilla 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
)
[편집] 매개 변수
observer
알림을 받을 관찰자
time
관찰자에게 알리기 전에 사용자가 유휴 상태이어야 하는 초 단위 시간.
[편집] 참고
  • 관찰자가 받게 되는 알림의 제목은 항상 nsIIdleService 자체입니다. 사용자가 유휴가 되면 관찰자 주제는 'idle'이고 다시 돌아오면 관찰자 주제는 'back'입니다. 알림의 data 매개 변수는 현재의 사용자 유휴 시간을 포함하고 있습니다.
  • 같은 관찰자를 두 번 추가할 수 있습니다.
  • 대부분의 구현은 유휴 정보를 위해서 운영체제를 정기적으로 확인해야 합니다. 이는 구현의 확인 간격 만큼 알림이 지연되어 도착할 수 있다는 뜻입니다. 현재의 구현은 5초 간격을 사용하고 있습니다.

[편집] removeIdleObserver()

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

void removeIdleObserver(
  in nsIObserver observer,
  in unsigned long time
)
[편집] 매개 변수
observer
삭제할 관찰자
time
관찰자가 기다리던 시간
[편집] 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);