Idioma: HTML | XAML

Como suspender um aplicativo (HTML)

Saiba como salvar dados de aplicativo importantes quando o sistema suspende o seu aplicativo do Tempo de Execução do Windows. Quando o aplicativo é suspenso pelo sistema, ele pode ser encerrado posteriormente sem aviso. É importante salvar o estado atual do usuário no aplicativo para que quando ele for reiniciado você possa restaurar esse estado. O usuário nunca deve saber que o aplicativo foi suspenso e foi encerrado em segundo plano.

As etapas a seguir mostrarão como se registrar para o evento checkpoint e usá-lo para salvar algum estado básico do aplicativo.

Instruções

Etapa 1: Registrar-se para o evento de ponto de verificação

Registre-se para o evento checkpoint no escopo global. Esse evento indica que o aplicativo está sendo suspenso pelo sistema. Depois que o aplicativo é suspenso, ele pode ser terminado pelo sistema para liberar recursos do sistema. Por causa disso, é importante salvar os dados do aplicativo durante o evento de ponto de verificação.



var app = WinJS.Application;

app.addEventListener("checkpoint", checkpointHandler);

Etapa 2: Salvar os dados do aplicativo antes da suspensão

Quando o aplicativo manipula o evento checkpoint, ele tem a oportunidade de salvar os dados importantes do aplicativo na função do manipulador para o evento checkpoint. O aplicativo pode usar o objeto sessionState para salvar dados simples do aplicativo de forma assíncrona. O objeto sessionState mantém os dados de forma que o aplicativo possa acessá-los durante a ativação após o término.


function checkpointHandler(eventArgs) 
{
    var stateObject = new Object();

    // TODO: Populate the state object with app data

    // Save the state object to the session object
    app.sessionState.stateObject = stateObject;
}

Etapa 3: Liberar manipuladores de recursos e arquivos exclusivos

Quando seu aplicativo manipula o evento checkpoint, ele também tem a oportunidade de liberar indicadores de arquivos e recursos exclusivos. Exemplos de recursos exclusivos são câmeras, dispositivos de E/S, dispositivos externos e recursos de rede. Liberar explicitamente os indicadores de arquivos e recursos exclusivos ajuda a garantir que outros aplicativos possam acessá-los quando não estiverem sendo usados pelo seu aplicativo. Quando o aplicativo é ativado após o término, ele deve abrir os manipuladores de recursos e arquivos exclusivos.

Comentários

O sistema suspende o aplicativo quando o usuário alterna para outro aplicativo ou área de trabalho. O sistema retoma o aplicativo quando o usuário alterna de volta para ele. Quando o sistema retoma o aplicativo, o conteúdo das estruturas de dados e variáveis permanece igual ao que era antes de o sistema suspender o aplicativo. O sistema restaura o aplicativo exatamente de onde estava, para que ele apareça para o usuário como se estivesse executando em tela de fundo.

O sistema tenta manter o aplicativo e seus dados na memória enquanto está suspenso. Entretanto, o sistema operacional pode encerrar o aplicativo por inúmeros motivos depois que ele é suspenso. Alguns exemplos de quando isso pode acontecer são: o usuário fecha manualmente o aplicativo, o usuário faz logout ou o sistema está com poucos recursos. Quando o usuário volta para um aplicativo que foi encerrado, o aplicativo recebe um evento activated e deve verificar se os objetos sessionState estão definidos. Quando os objetos estão definidos, o aplicativo deve carregar os dados.

O sistema não notifica um aplicativo sobre seu encerramento, então o aplicativo deve salvar os dados e liberar os manipuladores de recursos e arquivos exclusivos ao ser suspenso, e restaurá-los ao ser retomado após a suspensão ou ativado após o encerramento.

Observação  Se você precisar executar um trabalho assíncrono quando o aplicativo estiver sendo suspenso, precisará adiar a conclusão da suspensão até que o trabalho seja concluído. Você pode usar o método setPromise na propriedade de detalhes do argumento do evento checkpoint para atrasar a conclusão da suspensão até depois que você cumprir a promessa.
Observação  Para melhorar a capacidade de resposta do sistema no Windows 8.1 e no Windows Phone, os aplicativos recebem acesso de prioridade baixa aos recursos depois da suspensão. Para dar suporte a essa nova prioridade, o tempo limite da operação de suspensão é estendido para que o aplicativo tenha o equivalente do tempo limite de 5 segundos para prioridade normal no Windows ou entre 1 e 10 segundos no Windows Phone. Você não pode estender ou alterar esse período de tempo limite.

Uma observação quanto à depuração é usar o Microsoft Visual Studio:  O Visual Studio impede o Windows de suspender um aplicativo que está conectado ao depurador. Isso serve para permitir que o usuário exiba a interface do usuário de depuração do Visual Studio enquanto o aplicativo está sendo executado. Ao depurar um aplicativo, você pode enviar a ele um evento de suspensão usando o Visual Studio. Verifique se a barra de ferramentas Local da Depuração está sendo mostrada e clique no ícone Suspender.

Exemplo completo

Veja o Exemplo de ativação e suspensão de aplicativo usando WinJS e o Exemplo de ativação, retomada e suspensão de aplicativo usando WRL para obter exemplos de código completos que mostram como manipular eventos de ciclo de vida do aplicativo.

Tópicos relacionados

Tarefas
Como ativar um aplicativo
Como retomar um aplicativo
Conceitual
Ciclo de vida do aplicativo
Diretrizes
Diretrizes para suspender e retomar aplicativos
Referência
WinJS.Application.checkpoint
WinJS.Application.sessionState

 

 

Mostrar:
© 2015 Microsoft