mozilla

Compare Revisions

nsIIdleService

Change Revisions

Revision 92911:

Revision 92911 by hanyuxinting on

Revision 92912:

Revision 92912 by trevorh on

Title:
nsIIdleService
nsIIdleService
Slug:
XPCOM_Interface_Reference/nsIIdleService
XPCOM_Interface_Reference/nsIIdleService
Tags:
XPCOM, Interfaces, Interfaces:Scriptable, "XPCOM API Reference", "XPCOM Interface Reference"
XPCOM, Interfaces, Interfaces:Scriptable, "XPCOM API Reference", "XPCOM Interface Reference"
Content:

Revision 92911
Revision 92912
n8      {{ Xpcomapi() }} {{ Fx_minversion_header("3") }}n8      {{ IFSummary("widget/public/nsIIdleService.idl", "nsISuppor
 >ts", "Scriptable", "1.9", "The idle service lets you monitor how 
 >long the user has been 'idle', that is they have not used their m
 >ouse or keyboard.", "1.9") }}
n11      {{ InterfaceStatus("nsIIdleService", "widget/public/nsIIdlen11      You can get the idle time directly, but in most cases you w
>Service.idl", "unfrozen", "Mozilla 1.9a", "yes") }}>ill want to register an observer for a predefined interval. The o
 >bserver will get an 'idle' notification when the user is idle for
 > that interval (or longer), and receive a 'back' notification whe
 >n the user starts using their computer again.
12    </p>
13    <h2 name="Summary">
14      Summary
15    </h2>
16    <p>
17      The idle service lets you monitor how long the user has bee
>n 'idle', i.e. not used their mouse or keyboard. You can get the  
>idle time directly, but in most cases you will want to register a 
>n observer for a predefined interval. 
n27                            .getService(Components.interfaces.nsIn21                  .getService(Components.interfaces.nsIIdleServic
>IdleService)>e);
n36            <code>void <a href="#addIdleObserver.28.29">addIdleObn30            <code>void <a href="#addIdleObserver()">addIdleObserv
>server</a>(in <a href="/en/nsIObserver" title="en/nsIObserver">ns>er</a>(in nsIObserver observer, in unsigned long time);</code>
>IObserver</a> observer, in unsigned long time)</code> 
n41            <code>void <a href="#removeIdleObserver.28.29">removen35            <code>void <a href="#removeIdleObserver()">removeIdle
>IdleObserver</a>(in <a href="/en/nsIObserver" title="en/nsIObserv>Observer</a>(in nsIObserver observer, in unsigned long time);</co
>er">nsIObserver</a> observer, in unsigned long time)</code>>de>
n67            <code>long</code>n61            <code><a href="/en/unsigned_long" title="en/unsigned 
 >long">unsigned long</a></code>
n70            The amount of time in milliseconds that has passed sin64            The amount of time in milliseconds that has passed si
>nce the last user activity. <em>Read only.</em>>nce the last user activity. Can be 0 if there is no valid idle ti
 >me to report (this can happen if the user never interacted with t
 >he browser at all, and if we are unable to poll for idle time man
 >ually). <strong>Read only.</strong>
n78    <h3 name="addIdleObserver.28.29">n72    <h3 name="addIdleObserver()">
nn78    <ul>
79      <li>The subject of the notification the observer will get i
 >s always the <code>nsIIdleService</code> itself. When the user go
 >es idle, the observer topic is 'idle' and when they get back, the
 > observer topic is 'back'. The data parameter for the notificatio
 >n contains the current user idle time.
80      </li>
81      <li>You can add the same observer twice.
82      </li>
83      <li>Most implementations need to poll the OS for idle info 
 >themselves, meaning your notifications could arrive with a delay 
 >up to the length of the polling interval in that implementation. 
 >Current implementations use a delay of 5 seconds.
84      </li>
85    </ul>
86    <p>
87      {{ gecko_minversion_note("1.9.2", "Starting in Gecko 1.9.2,
 > there is a once a day notification sent out if the user remains 
 >idle for an extended period:&nbsp;'idle-daily'. The data paramete
 >r for the notification contains the current user idle time.") }}
88    </p>
n88)n93);
n98        The <a href="/en/nsIObserver" title="en/nsIObserver">obsen103        The {{ interface("nsIObserver") }} to be notified.
>rver</a> to be notified. 
n100    </dl>n
101    <dl>
n109    <h6 name="Remarks">n
110      Remarks
111    </h6>
112    <ul>
113      <li>The subject of the notification the observer will get i
>s always the <code>nsIIdleService</code> itself. When the user go 
>es idle, the observer topic is 'idle' and when they get back, the 
> observer topic is 'back'. The data parameter for the notificatio 
>n contains the current user idle time. 
114      </li>
115    </ul>
116    <ul>
117      <li>You can add the same observer twice.
118      </li>
119    </ul>
120    <ul>
121      <li>Most implementations need to poll the OS for idle info 
>themselves, meaning your notifications could arrive with a delay  
>up to the length of the polling interval in that implementation.  
>Current implementations use a delay of 5 seconds. 
122      </li>
123    </ul>
124    <p>
125      {{ gecko_minversion_note("1.9.2", "Starting in Gecko 1.9.2,
> there is a once a day notification sent out if the user remains  
>idle for an extended period:&nbsp;'idle-daily'. The data paramete 
>r for the notification contains the current user idle time.") }} 
126    </p>
127    <h3 name="removeIdleObserver.28.29">112    <h3 name="removeIdleObserver()">
n131      Remove an observer registered with addIdleObserver.n116      Remove an observer registered with {{ manch("addIdleObserve
 >r") }}.
117    </p>
118    <p>
119      {{ note("Removing an observer will remove it once, for the 
 >idle time you specify. If you have added an observer multiple tim
 >es, you will need to remove it just as many times.") }}
n137)n125);
n139    <h6 name="Parameters_2">n127    <h6 name="Parameters">
n147        the <a href="/en/nsIObserver" title="en/nsIObserver">obsen135        The {{ interface("nsIObserver") }} to be removed.
>rver</a> to be removed 
n149    </dl>n
150    <dl>
n155        the amount of time they were listening for.n141        The amount of time they were listening for.
n158    <h6 name="Remarks_2">n
159      Remarks
160    </h6>
161    <p>
162      Removing an observer will remove it once, for the idle time
> you specify. If you have added an observer multiple times, you w 
>ill need to remove it just as many times. 
163    </p>
164    <h2 name="Example_Code">144    <h2 name="Example">
165      Example Code145      Example
n167    <p>n147    <h4 name="Example_1">
168      Example 1:148      Example 1
169    </p>149    </h4>
170    <pre class="eval">150    <pre class="brush: js">
n172                            .getService(Components.interfaces.nsIn152                  .getService(Components.interfaces.nsIIdleServic
>IdleService)>e)
n177    <p>n157    <h4 name="Example_2">
178      Example 2:158      Example 2
179    </p>159    </h4>
180    <pre class="eval">160    <pre class="brush: js">
t182                            .getService(Components.interfaces.nsIt162                  .getService(Components.interfaces.nsIIdleServic
>IdleService)>e)

Back to History