Application.Suspending Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando o aplicativo faz a transição para o estado Suspenso de algum outro estado.
public:
virtual event SuspendingEventHandler ^ Suspending;
// Register
event_token Suspending(SuspendingEventHandler const& handler) const;
// Revoke with event_token
void Suspending(event_token const* cookie) const;
// Revoke with event_revoker
Application::Suspending_revoker Suspending(auto_revoke_t, SuspendingEventHandler const& handler) const;
public event SuspendingEventHandler Suspending;
function onSuspending(eventArgs) { /* Your code */ }
application.addEventListener("suspending", onSuspending);
application.removeEventListener("suspending", onSuspending);
- or -
application.onsuspending = onSuspending;
Public Custom Event Suspending As SuspendingEventHandler
Tipo de evento
Exemplos
Este exemplo de código demonstra um padrão de uso típico para esse evento. Esse código é usado por muitos dos exemplos XAML como parte do code-behind para o arquivo app.xaml. Se você procurar os exemplos XAML, poderá encontrar o código-fonte da API de SuspensionManager
classe, conforme referenciado neste código.
async protected void OnSuspending(object sender, SuspendingEventArgs args)
{
SuspendingDeferral deferral = args.SuspendingOperation.GetDeferral();
await SuspensionManager.SaveAsync();
deferral.Complete();
}
Private Async Sub OnSuspending(sender As Object, args As SuspendingEventArgs)
Dim deferral As SuspendingDeferral = args.SuspendingOperation.GetDeferral
Await SuspensionManager.SaveAsync
deferral.Complete()
End Sub
Comentários
O sistema suspende seu aplicativo sempre que o usuário alterna para outro aplicativo ou para a área de trabalho e retoma seu aplicativo sempre que o usuário alterna de volta para ele. No entanto, o sistema também pode encerrar seu aplicativo enquanto ele está suspenso para liberar recursos. Portanto, você deve manipular o evento Suspending para executar as seguintes operações:
- Preservar o estado da sessão do usuário.
- Libere todos os bloqueios exclusivos nos recursos.
- Reduza o uso de memória, se possível. Por exemplo, serialize todos os dados fáceis de reconstruir na forma de objeto após a reativação.
- Salve o estado do aplicativo. O evento Suspending é a única indicação de que seu aplicativo receberá antes da rescisão (se isso acontecer). Por isso, você deve armazenar estado de sessão suficiente (como o artigo atual que está sendo lido ou a posição de reprodução de filme atual) para recriar exatamente a mesma experiência durante a ativação. A orientação para aplicativos de criação de conteúdo é salvar o trabalho de um usuário antecipadamente e com frequência, mas também confirmar uma última salvação durante a suspensão. Salvar dados antes da suspensão é útil porque o manipulador de eventos Suspending tem apenas 5 segundos para concluir sua operação.
Se o aplicativo for encerrado, você poderá restaurar o estado do aplicativo em uma substituição de método OnLaunched . Se o aplicativo for retomado antes de ser encerrado, o sistema restaurará o estado do aplicativo automaticamente. Você deverá lidar com o evento Resumindo somente se precisar atualizar qualquer conteúdo exibido que possa ter sido alterado enquanto o aplicativo estiver suspenso, como feeds de notícias ou a localização do usuário.
O evento Suspending é executado no mesmo apartamento em que foi registrado.