앱 다시 시작 처리

중요 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(다시 시작) 이벤트를 앱으로 전송할 수 있습니다. 디버그 위치 도구 모음이 표시되는지 확인한 후 일시 중단 아이콘 옆에 있는 드롭다운을 클릭하세요. 그런 다음 Resume(다시 시작)을 선택하세요.

Windows Phone Store 앱의 경우에는 앱이 현재 일시 중단되었으며 사용자가 기본 타일 또는 앱 목록에서 앱을 다시 시작하더라도, Resuming(다시 시작) 이벤트 이후에 항상 OnLaunched가 발생합니다. 현재 창에 이미 설정된 콘텐츠가 있으면 앱이 초기화를 건너뛸 수 있습니다. LaunchActivatedEventArgs.TileId 속성을 확인하여 앱이 기본 타일에서 시작되었는지, 아니면 보조 타일에서 시작되었는지 확인하고, 해당 정보에 따라 앱 환경을 새로 제공할지, 아니면 다시 시작할지 여부를 결정할 수 있습니다.