處理應用程式繼續執行
重要 API
了解在系統恢復應用程式時,重新整理 UI 的位置。 本主題中的範例註冊了 Resuming 事件的事件處理常式。
註冊 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);
}
重新整理顯示的內容並重新取得資源
當使用者切換至另一個應用程式或桌面之後,系統會暫停您的應用程式數秒。 當使用者切換回應用程式時,系統會恢復您的應用程式。 當系統恢復您的應用程式時,變數和資料結構的內容會與系統暫停應用程式之前的內容相同。 系統會將應用程式恢復到離開時的狀態。 對使用者來說,它看起來就像應用程式已在背景中執行一樣。
當您的應用程式處理 Resuming 事件時,應用程式可能已經暫停了幾小時或幾天。 它應該重新整理任何在應用程式暫停期間可能已過時的內容,例如新聞提要或使用者的位置。
這也是一個很好的時機,可以恢復在應用程式暫停時釋放的任何專用資源,例如檔案控制代碼、攝影機、I/O 裝置、外部裝置和網路資源。
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 事件不是從 UI 執行緒引發的,因此在您的處理常式中必須使用調度程式來調度對 UI 的任何呼叫。
備註
當您的應用程式附加至 Visual Studio 偵錯工具時,它將不會暫停。 您可以在除錯工具中將它暫停,然後發送一個 Resume 事件,以便您可以對程式碼偵錯。 確認有看見 [偵錯位置] 工具列,然後按一下 [暫停] 圖示旁邊的下拉箭號。 然後選擇 [繼續]。
對於 Windows Phone 市集應用程式,即使您的應用程式目前處於暫停狀態並且使用者從主要磚或應用程式清單重新啟動您的應用程式,Resuming 事件總是跟隨在 OnLaunched 事件之後發生。 如果目前視窗上已設定內容,應用程式可以略過初始化。 您可以檢查 LaunchActivatedEventArgs.TileId 屬性,以判斷應用程式是否已從主要或次要磚啟動,並根據該資訊,決定是否應該呈現全新或繼續的應用程式體驗。