mozilla

Idle API

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 propriedade onidle, 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.

Veja também

Etiquetas do documento e colaboradores

Contributors to this page: jlamim
Última atualização por: jlamim,