Compartir a través de


Controlar la reanudación de aplicaciones

API importantes

Obtenga información sobre dónde actualizar la interfaz de usuario cuando el sistema reanude la aplicación. En el ejemplo de este tema se registra un controlador de eventos para el evento Resuming .

Registro del controlador de eventos de reanudación

Regístrese para controlar el evento Resuming , que indica que el usuario ha cambiado de la aplicación y, a continuación, vuelva a ella.

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);
}

Actualizar el contenido mostrado y volver a adquirir recursos

El sistema suspende la aplicación unos segundos después de que el usuario cambie a otra aplicación o al escritorio. El sistema reanuda la aplicación cuando el usuario vuelve a ella. Cuando el sistema reanuda la aplicación, el contenido de las variables y las estructuras de datos es el mismo que antes de que el sistema suspendiera la aplicación. El sistema restaura la aplicación donde se dejó. Para el usuario, aparece como si la aplicación se hubiera estado ejecutando en segundo plano.

Cuando la aplicación controla el evento Resuming , es posible que la aplicación se haya suspendido durante horas o días. Debe actualizar cualquier contenido que pueda haber quedado obsoleto mientras se suspendió la aplicación, como fuentes de noticias o la ubicación del usuario.

Este es también un buen momento para restaurar los recursos exclusivos que ha publicado cuando la aplicación se suspendió, como identificadores de archivos, cámaras, dispositivos de E/S, dispositivos externos y recursos de red.

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.
}

Nota:

Dado que el evento Resuming no se genera desde el subproceso de la interfaz de usuario, se debe usar un distribuidor en el controlador para enviar las llamadas a la interfaz de usuario.

Comentarios

Cuando la aplicación esté asociada al depurador de Visual Studio, no se suspenderá. Sin embargo, puede suspenderlo desde el depurador y, a continuación, enviarlo un evento Resume para que pueda depurar el código. Asegúrese de que la barra de herramientas Ubicación de depuración esté visible y haga clic en la lista desplegable situada junto al icono Suspender . A continuación, elija Reanudar.

Para Windows Phone aplicaciones de la Tienda, el evento Resuming siempre va seguido de OnLaunched, incluso cuando la aplicación está suspendida actualmente y el usuario vuelve a iniciar la aplicación desde un icono principal o una lista de aplicaciones. Las aplicaciones pueden omitir la inicialización si ya hay contenido establecido en la ventana actual. Puede comprobar la propiedad LaunchActivatedEventArgs.TileId para determinar si la aplicación se inició desde un icono principal o secundario y, en función de esa información, decida si debe presentar una experiencia de aplicación nueva o reanudada.