SuspendingEventHandler Delegar
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.
Representa o método que manipulará o evento Suspending .
public delegate void SuspendingEventHandler(Platform::Object ^ sender, SuspendingEventArgs ^ e);
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(591565925, 58218, 16610, 177, 57, 164, 112, 70, 2, 166, 225)]
class SuspendingEventHandler : MulticastDelegate
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(591565925, 58218, 16610, 177, 57, 164, 112, 70, 2, 166, 225)]
public delegate void SuspendingEventHandler(object sender, SuspendingEventArgs e);
Public Delegate Sub SuspendingEventHandler(sender As Object, e As SuspendingEventArgs)
Parâmetros
- sender
-
Object
Platform::Object
IInspectable
O objeto em que o manipulador está anexado.
Dados do evento.
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
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, por exemplo, o exemplo de Entrada, 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.