Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
This API is available on Firefox OS for certified applications only.
Resumo
A Idle API é utilizada para enviar notificações ao usuário mesmo quando um aplicativo está em segundo plano (inativo). Ela possibilita que o usuário continue recebendo notificaçòes do aplicativo mesmo quando não estiver com ele em primeiro plano (ativo). O caso de uso mais comum é para economizar bateria; nesse caso é utilizado em conjunto com a Power Management API, api de gerenciamento de energia.
Monitorando uma aplicação inativa
Para que uma aplicação em segundo plano envie notificações ao usuário, é necessário registrar um observador (idle observer).O observador é um objeto que possui três propriedades:
- A propriedade
time
define o tempo que será aguardado para a execução da propriedadeonidle
, após o aplicativo entrar em segundo plano. É definida em segundos. - A propriedade
onidle
é chamada quando o apicativo entra em segundo plano. - A propriedade
onactive
é chamada quando o aplicativo volta para o primeiro plano.
Exemplo: escurecendo a tela to celular quando o app estiver inativo
In this example, an idle observer is set up that dims the screen's brightness to 50% when the user is idle for 10 seconds, and restores it back to 100% when the user is active again. A second observer is set up that turns off the screen when the user is idle for at least 15 seconds.
Nesse exemplo, o observador está configurado para reduzir o brilho da tela em 50%, 10 segundos após o aplicativo entrar em segundo plano, e restaura o brilho para 100% quando ele voltar a ficar em primeiro plano. Um segundo observador é configurado, e 15 segundos após o aplicativo entrar em segundo plano, ele apaga a tela do usuário.
// NOTE: mozPower is part of the Power Management API var fadeLight = { time: 10, // Ten seconds onidle: function () { // The user does not seem active, let's dim the screen down navigator.mozPower.screenBrightness = 0.5; }, onactive: function () { // Ok, the user is back, let's brighten the screen up navigator.mozPower.screenBrightness = 1; } } var screenOff = { time: 15, // fifteen seconds onidle: function () { // Ok, the user had his chance but he's really idle, let's turn the screen off navigator.mozPower.screenEnabled = false; }, onactive: function () { // Ok, the user is back, let's turn the screen on navigator.mozPower.screenEnabled = true; } } // Register the idle observers navigator.addIdleObserver(fadeLight); navigator.addIdleObserver(screenOff);
O código acima define 2 observadores: fadeLight
e screenOff
, que chamam navigator.addIdleObserver()
uma vez para cada um deles, de modo que eles sejam registrados. Podem ser registrados quantos observadores forem necessários para uma aplicação.
Se não for necessário observar o momento em que o aplicativo entra em segundo plano, os observadores ociosos podem ser removidos chamando o método navigator.removeIdleObserver()
, como mostrado a seguir:
navigator.removeIdleObserver(fadeLight); navigator.removeIdleObserver(screenOff);
Especificação
Essa API não faz parte das especificações do W3C, mas será discutida como parte do System Applications Working Group.