Compartir a través de


SuspendingEventHandler Delegado

Definición

Representa el método que controlará el 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

Objeto donde está asociado el controlador.

e
SuspendingEventArgs

Datos de evento

Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

En este ejemplo de código se muestra un patrón de uso típico para este evento. Muchos de los ejemplos xaml usan este código, por ejemplo, el ejemplo input, como parte del código subyacente del archivo app.xaml. Si examinas los ejemplos xaml, puedes encontrar el código fuente de la SuspensionManager API de clase como se hace referencia en este 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 

Comentarios

El sistema suspende la aplicación cada vez que el usuario cambia a otra aplicación o al escritorio y reanuda la aplicación siempre que el usuario vuelva a ella. Sin embargo, el sistema también puede finalizar la aplicación mientras se suspende para liberar recursos. Por lo tanto, debe controlar el evento Suspending para realizar las siguientes operaciones:

  • Conservar el estado de sesión del usuario.
  • Libere los bloqueos exclusivos en los recursos.
  • Reduzca el uso de memoria si es posible. Por ejemplo, serialice los datos que sean fáciles de reconstruir en forma de objeto tras la reactivación.
  • Guarde el estado de la aplicación. El evento Suspending es la única indicación de que la aplicación recibirá antes de la finalización (si ocurre). Por este motivo, debe almacenar suficiente estado de sesión (por ejemplo, el artículo actual que se lee o la posición actual de reproducción de películas) para volver a crear la misma experiencia exacta durante la activación. La guía para las aplicaciones de creación de contenido es guardar el trabajo de un usuario antes y, a menudo, pero también confirmar un guardado final durante la suspensión. Guardar datos antes de la suspensión es útil porque el controlador de eventos Suspending tiene solo 5 segundos para completar su operación.

Si la aplicación finaliza, puedes restaurar el estado de la aplicación en una invalidación del método OnLaunched . Si la aplicación se reanuda antes de que finalice, el sistema restaura automáticamente el estado de la aplicación. Debe controlar el evento Resuming solo si necesita actualizar cualquier contenido mostrado que pueda haber cambiado mientras se suspende la aplicación, como fuentes de noticias o la ubicación del usuario.

Se aplica a