Поделиться через


Application.Suspending Событие

Определение

Происходит при переходе приложения в состояние Приостановлено из другого состояния.

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 

Тип события

Примеры

В этом примере кода показан типичный шаблон использования этого события. Этот код используется многими примерами XAML как часть кода программной части для файла app.xaml. При просмотре примеров XAML можно найти исходный код ДЛЯ SuspensionManager API класса, как указано в этом коде.

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 

Комментарии

Система приостанавливает работу приложения всякий раз, когда пользователь переключается на другое приложение или на рабочий стол, и возобновляет работу приложения всякий раз, когда пользователь вернется к нему. Однако система также может завершить работу приложения, пока оно приостановлено, чтобы освободить ресурсы. Поэтому следует обработать событие Suspending для выполнения следующих операций:

  • Сохранение состояния сеанса пользователя.
  • Сними все монопольные блокировки ресурсов.
  • По возможности сократите использование памяти. Например, сериализуйте любые данные, которые легко восстановить в объектной форме после повторной активации.
  • Сохраните состояние приложения. Событие Suspending является единственным признаком того, что ваше приложение получит до завершения работы (если это произойдет). По этой причине необходимо сохранить достаточное состояние сеанса (например, текущую статью или текущую позицию воспроизведения фильма), чтобы воссоздать то же самое взаимодействие во время активации. Для приложений для создания содержимого рекомендуется сохранять работу пользователя на ранних этапах и часто, а также фиксировать одно окончательное сохранение во время приостановки. Сохранение данных до приостановки полезно, так как у обработчика событий Suspending есть всего 5 секунд для завершения операции.

Если приложение завершено, вы можете восстановить состояние приложения в переопределении метода OnLaunched . Если приложение возобновляется до завершения работы, система автоматически восстанавливает состояние приложения. Событие возобновления следует обрабатывать только в том случае, если вам нужно обновить отображаемое содержимое, которое могло измениться во время приостановки приложения, например в новостных каналах или расположении пользователя.

Событие Suspending выполняется в той же квартире, в которой оно было зарегистрировано.

Применяется к

См. также раздел