Обработка возобновления работы приложения
Важные API
Узнайте, где обновить свой ИП, когда система возобновляет работу приложения. В примере этого раздела регистрируется обработчик событий для события Resuming.
Регистрация обработчика события возобновления
Выполните регистрацию для обработки события Resuming, которое сигнализирует о том, что пользователь переключился с вашего приложения на другую задачу, а затем вернулся к нему.
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.
}
Примечание
Так как событие Resuming не возникает из потока пользовательского интерфейса, диспетчер должен использоваться в обработчике для отправки любых вызовов в пользовательский интерфейс.
Комментарии
Если приложение подключено к отладчику Visual Studio, оно не будет приостановлено. Однако его можно приостановить из отладчика, а затем отправить ему событие Resume, чтобы выполнить отладку кода. Убедитесь, что отображается панель инструментов Место отладки, и нажмите раскрывающий список рядом со значком Приостановить. Затем выберите Возобновить.
Для приложений из Магазина Windows Phone за событием Resuming всегда следует событие OnLaunched, даже если ваше приложение в данный момент приостановлено, а пользователь заново запускает приложение с основной плитки или из списка приложений. Приложения могут пропустить инициализацию, если содержимое уже задано в текущем окне. Можно проверить свойство LaunchActivatedEventArgs.TileId, чтобы определить, было ли приложение запущено с основной или вспомогательной плитки, и на основе этих данных решить, нужно ли запускать приложение заново или можно возобновить его.
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по