Обработка возобновления работы приложения

Важные API

Узнайте, где обновить пользовательский интерфейс, когда система возобновляет работу приложения. В примере в этом разделе регистрируется обработчик событий для события возобновления .

Регистрация обработчика событий возобновления

Зарегистрируйтесь для обработки события возобновления , которое указывает, что пользователь отключился от приложения, а затем вернулся к нему.

partial class MainPage
{
   public MainPage()
   {
      InitializeComponent();
      Application.Current.Resuming += new EventHandler<Object>(App_Resuming);
   }
}
Public NonInheritable Class MainPage

   Public Sub New()
      InitializeComponent()
      AddHandler Application.Current.Resuming, AddressOf App_Resuming
   End Sub

End Class
MainPage::MainPage()
{
    InitializeComponent();
    Windows::UI::Xaml::Application::Current().Resuming({ this, &MainPage::App_Resuming });
}
MainPage::MainPage()
{
    InitializeComponent();
    Application::Current->Resuming +=
        ref new EventHandler<Platform::Object^>(this, &MainPage::App_Resuming);
}

Обновление отображаемого содержимого и повторного просмотра ресурсов

Система приостанавливает приложение через несколько секунд после переключения пользователя на другое приложение или на рабочий стол. Система возобновляет работу приложения, когда пользователь вернется к нему. Когда система возобновляет работу приложения, содержимое переменных и структур данных совпадает с тем, что они были до того, как система приостановила приложение. Система восстанавливает приложение, в котором оно осталось. Пользователю отображается, как если бы приложение выполнялось в фоновом режиме.

Когда приложение обрабатывает событие возобновления , ваше приложение может быть приостановлено в течение нескольких часов или дней. Он должен обновить любое содержимое, которое могло стать устаревшим во время приостановки приложения, например новостей или расположения пользователя.

Это также хорошее время для восстановления любых эксклюзивных ресурсов, выпущенных при приостановке приложения, таких как дескриптора файлов, камеры, устройства ввода-вывода, внешние устройства и сетевые ресурсы.

partial class MainPage
{
    private void App_Resuming(Object sender, Object e)
    {
        // TODO: Refresh network data, perform UI updates, and reacquire resources like cameras, I/O devices, etc.
    }
}
Public NonInheritable Class MainPage

    Private Sub App_Resuming(sender As Object, e As Object)
 
        ' TODO: Refresh network data, perform UI updates, and reacquire resources like cameras, I/O devices, etc.

    End Sub
>
End Class
void MainPage::App_Resuming(
    Windows::Foundation::IInspectable const& /* sender */,
    Windows::Foundation::IInspectable const& /* e */)
{
    // TODO: Refresh network data, perform UI updates, and reacquire resources like cameras, I/O devices, etc.
}
void MainPage::App_Resuming(Object^ sender, Object^ e)
{
    // TODO: Refresh network data, perform UI updates, and reacquire resources like cameras, I/O devices, etc.
}

Примечание.

Так как событие возобновления не вызывается из потока пользовательского интерфейса, диспетчер должен использоваться в обработчике для отправки вызовов в пользовательский интерфейс.

Замечания

Если приложение подключено к отладчику Visual Studio, оно не будет приостановлено. Его можно приостановить с отладчика, однако, а затем отправить его событие Возобновления , чтобы можно было выполнить отладку кода. Убедитесь, что панель инструментов "Расположение отладки" отображается и щелкните раскрывающийся список рядом с значком приостановки . Затем нажмите кнопку "Возобновить".

Для приложений Магазина Windows Phone событие возобновления всегда следует OnLaunched, даже если приложение в настоящее время приостановлено, и пользователь повторно запускает приложение из основной плитки или списка приложений. Приложения могут пропустить инициализацию, если в текущем окне уже задано содержимое. Вы можете проверить свойство LaunchActivatedEventArgs.TileId , чтобы определить, было ли запущено приложение с первичной или вторичной плитки, и на основе этой информации определите, следует ли представить новый или возобновить работу приложения.