Condividi tramite


Application.Suspending Evento

Definizione

Si verifica quando l'applicazione passa allo stato sospeso da un altro stato.

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 evento

Esempio

Questo esempio di codice illustra un modello di utilizzo tipico per questo evento. Questo codice viene usato da molti esempi XAML come parte del code-behind per il file app.xaml. Se si esplorano gli esempi XAML, è possibile trovare il codice sorgente per l'API della SuspensionManager classe come fatto riferimento in questo codice.

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 

Commenti

Il sistema sospende l'app ogni volta che l'utente passa a un'altra app o al desktop e riprende l'app ogni volta che l'utente lo torna. Tuttavia, il sistema può anche terminare l'app mentre è sospeso per liberare risorse. Di conseguenza, è necessario gestire l'evento Di sospensione per eseguire le operazioni seguenti:

  • Mantenere lo stato della sessione utente.
  • Rilasciare eventuali blocchi esclusivi sulle risorse.
  • Ridurre l'utilizzo della memoria se possibile. Ad esempio, serializzare tutti i dati facili da ricostruire in forma di oggetto al momento della riattivazione.
  • Salvare lo stato dell'app. L'evento Sospendi è l'unica indicazione che l'app riceverà prima della terminazione (se si verifica). A causa di questo, è consigliabile archiviare abbastanza stato sessione (ad esempio l'articolo corrente da leggere o la posizione di riproduzione del film corrente) per ricreare l'esperienza esatta durante l'attivazione. Le linee guida per le app per la creazione di contenuti consiste nel salvare il lavoro di un utente in anticipo e spesso, ma anche eseguire il commit di un salvataggio finale durante la sospensione. Il salvataggio dei dati prima della sospensione è utile perché il gestore eventi Di sospensione ha solo 5 secondi per completare l'operazione.

Se l'app viene terminata, è possibile ripristinare lo stato dell'app in un metodo OnLaunched override. Se l'app viene ripresa prima della chiusura, il sistema ripristina automaticamente lo stato dell'app. È consigliabile gestire l'evento Ripresa solo se è necessario aggiornare qualsiasi contenuto visualizzato che potrebbe essere stato modificato durante la sospensione dell'app, ad esempio feed di notizie o posizione dell'utente.

L'evento Sospensione viene eseguito nello stesso appartamento registrato.

Si applica a

Vedi anche