Ciclo de vida de la aplicación (aplicaciones de Windows en tiempo de ejecución)

Applies to Windows and Windows Phone

En este tema se describe el ciclo de vida de una aplicación, desde el momento en que se implementa hasta su eliminación. Si suspendes y reanudas la aplicación de manera adecuada, ofrecerás a tus clientes la mejor experiencia posible con la aplicación.

Estado de ejecución de la aplicación

Esta ilustración representa las transiciones entre los estados de ejecución de la aplicación. En las siguientes secciones de este tema se describen estos estados y eventos. Para obtener más información sobre cuándo sucede cada transición de estado y cómo debe reaccionar la aplicación, consulta los documentos relativos a la enumeración ApplicationExecutionState.

Diagrama de estados que muestra las transiciones entre los estados de ejecución de la aplicación

Inicio de la aplicación

Una aplicación se inicia cada vez que el usuario la activa mientras el proceso se encuentra en el estado NotRunning. Una aplicación puede estar en el estado de no ejecución porque todavía no se ha iniciado, porque se estaba ejecutando y se ha bloqueado o porque se ha suspendido pero no se ha podido mantener en memoria y, por tanto, ha finalizado.

Cuando se inicia una aplicación, el sistema operativo muestra una pantalla de presentación para la aplicación. Para configurar esta pantalla de presentación, consulta el tema sobre cómo agregar una pantalla de presentación.

Mientras aparece la pantalla de bienvenida, la aplicación se asegura de que la interfaz de usuario esté lista para mostrarse. Las principales tareas de una aplicación son registrar controladores de eventos y configurar las opciones de interfaz de usuario personalizadas que la aplicación necesita para la carga. Estas tareas solo deberían tardar unos pocos segundos. Otras actividades que la aplicación necesite, como pedir datos de la red o recuperar grandes cantidades de datos del disco, se deberán llevar a cabo aparte de la activación. Una aplicación puede usar su propia interfaz de usuario de carga personalizada o una pantalla de presentación ampliada mientras espera a que estas operaciones de larga ejecución se completen. Consulta la documentación de pantalla de presentación ampliada y la muestra de pantalla de presentación si quieres obtener más detalles al respecto. Cuando la aplicación termine de activarse, entra en estado Running y la pantalla de bienvenida desaparecerá. Mostrar una ventana, volver del controlador de activación y completar un aplazamiento son maneras específicas en que una aplicación completa la activación. Si quieres obtener más información, consulta los temas sobre:

Activación de la aplicación

Los usuarios pueden activar una aplicación mediante diversos contratos y extensiones. Para participar en la activación, la aplicación debe registrarse para recibir el evento Activated | activated. El controlador de eventos de activación de la aplicación puede comprobar por qué se activó y si ya se encontraba en estado Running. Las aplicaciones se pueden activar de los modos indicados a continuación.

Tipo de activaciónDescripción
archivo almacenado en cachéEl usuario quiere guardar un archivo para el que la aplicación proporciona administración de contenido.
cámaraEl usuario desea capturar fotos o vídeo de una cámara conectada.
selector de contactosEl usuario desea seleccionar contactos.
dispositivoEl usuario quiere que la aplicación se encargue de la Reproducción automática.
archivoLa aplicación de un usuario inició un archivo de un tipo compatible con los registrados por esta aplicación.
selector de apertura de archivosEl usuario quiere seleccionar carpetas o archivos proporcionados por la aplicación.
selector de almacenamiento de archivosEl usuario quiere guardar un archivo y ha seleccionado la aplicación.
inicioEl usuario inició la aplicación o punteó un cuadro de contenido.
tarea de impresiónEl usuario quiere que la aplicación se encargue de las tareas de impresión.
protocoloLa aplicación de un usuario inició una dirección URL con un protocolo compatible con los registrados por esta aplicación.
búsquedaEl usuario quiere realizar búsquedas con la aplicación.
destino de uso compartidoEl usuario quiere que la aplicación sea el destino de una operación de uso compartido.

 

Las aplicaciones creadas para Windows 8.1 y posterior también se pueden activar con estos tipos.

Activation type Descripción
agregar citaEl usuario quiere agregar una cita al calendario. También compatible con Windows Phone.
quitar citaEl usuario quiere quitar una cita del calendario. También compatible con Windows Phone.
reemplazar citaEl usuario quiere reemplazar una cita del calendario. También compatible con Windows Phone.
mostrar periodoEl usuario quiere mostrar un periodo de tiempo específico en el calendario. También compatible con Windows Phone.
llamada a contactoEl usuario quiere llamar a un contacto.
mapa de contactoEl usuario quiere obtener la ubicación en el mapa de un contacto.
mensaje a contactoEl usuario quiere enviar un mensaje a un contacto.
publicación de contactoEl usuario quiere publicar un contacto.
videollamada a contactoEl usuario quiere realizar una videollamada a un contacto.
llamada de pantalla de bloqueoEl usuario quiere aceptar una llamada de la pantalla de bloqueo.
inicio restringidoEl usuario inició la aplicación restringida.

 

Las aplicaciones de Windows Phone se pueden activar con estos tipos.

Activation type Descripción
VoiceCommand La aplicación se activó como resultado de un comando de voz.
PickerReturned La aplicación se activó tras completar un selector.
WalletAction La aplicación se activó para realizar una operación de Wallet.
PickFileContinuation La aplicación se activó tras suspenderla para una operación del selector de archivos.
PickSaveFileContinuation La aplicación se activó tras suspenderla para una operación del selector para guardar archivos.
PickFolderContinuation La aplicación se activó tras suspenderla para una operación del selector de carpetas.
WebAuthenticationBrokerContinuation La aplicación se activó tras suspenderla para una operación del agente de autenticación web.

 

La aplicación puede usar la activación para restaurar datos ya guardados en caso de que el sistema operativo cierre la aplicación y el usuario la vuelva a iniciar posteriormente. El sistema operativo puede finalizar la aplicación después de que se haya suspendido por diversos motivos. Puede que el usuario la haya cerrado manualmente o haya cerrado la sesión, o bien el sistema no disponga de suficientes recursos. En caso de que el usuario inicie la aplicación después de que el sistema operativo la haya finalizado, recibirá un evento activated y el usuario verá la pantalla de presentación de la aplicación hasta que esta se active. Puedes usar este evento para averiguar si la aplicación necesita restaurar los datos que guardó cuando se suspendió por última vez o si debes cargar los datos predeterminados de la aplicación. Los argumentos del evento activated incluyen una propiedad PreviousExecutionState que indica el estado en el que la aplicación se encontraba antes de activarse. Dicha propiedad es uno de los valores de la enumeración ApplicationExecutionState. En la siguiente tabla se resumen las distintas posibilidades:

Motivo de finalizaciónValor de la propiedad PreviousExecutionStateMedida necesaria
Finalizada por el sistema (por ejemplo, debido a restricciones de recursos)Terminated Restaurar los datos del sistema
El usuario cerró la aplicaciónClosedByUser Iniciar la aplicación con los datos predeterminados
La aplicación finalizó de forma inesperada o no se ha ejecutado desde que comenzó la sesión del usuario NotRunningIniciar la aplicación con los datos predeterminados

 

PreviousExecutionState también puede reflejar los valores Running o Suspended, si bien en estos casos la aplicación no ha finalizado previamente, con lo cual no será necesario que restaures los datos.

  • Applies to Windows

Nota  

Ten en cuenta que, si inicias sesión en el equipo con la cuenta de Administrador, no podrás activar ninguna de las aplicaciones de la Tienda Windows.

Para obtener más información, consulta el tema sobre extensiones de la aplicación.

Suspensión de aplicaciones

Se puede suspender una aplicación cuando el usuario cambia a otra aplicación o cuando el dispositivo entra en estado de bajo consumo. La mayoría de las aplicaciones deja de ejecutarse cuando el usuario cambia a otra aplicación.

Cuando el usuario pasa una aplicación a segundo plano, el sistema operativo espera unos segundos para ver si el usuario vuelve inmediatamente a la aplicación. Si no vuelve, el sistema operativo suspende la aplicación.

Si una aplicación ha registrado un controlador de eventos para el evento Suspending | suspending, se llamará a este justo antes de que se suspenda la aplicación. Puedes usar el controlador de eventos para guardar datos de aplicación y de usuario relevantes en un almacenamiento persistente. Te recomendamos que uses las API de datos de aplicación para este fin, ya que así te aseguras de que finalizan el trabajo antes de que la aplicación entre en estado Suspended. Si quieres más información, consulta el tema sobre datos de la aplicación. Conviene que liberes recursos exclusivos e identificadores de archivos para que otras aplicaciones puedan acceder a ellos cuando la aplicación no los esté usando.

En general, la aplicación debe guardar su estado y liberar sus recursos exclusivos e identificadores de archivos inmediatamente en el controlador de eventos cuando se recibe el evento de suspensión, lo cual suele tardar menos de un segundo. Si una aplicación no vuelve del evento de suspensión transcurridos cinco segundos en Windows y entre uno y diez segundos en Windows Phone, el sistema operativo da por supuesto que la aplicación ha dejado de responder y la finaliza.

El sistema operativo intenta mantener la mayor cantidad posible de aplicaciones suspendidas en la memoria. Al mantener estas aplicaciones en la memoria, se garantiza que los usuarios puedan cambiar de manera rápida y confiable entre aplicaciones suspendidas. No obstante, si no hay recursos suficientes para mantener una aplicación en la memoria, el sistema operativo la puede finalizar. Ten en cuenta que las aplicaciones no reciben notificaciones cuando se cierran, por lo que la única oportunidad de guardar los datos de la aplicación es durante la suspensión. Cuando una aplicación determina que está activada tras cerrarse, debe cargar los datos de aplicación que se guardaron durante la suspensión para que parezca que la aplicación está en el punto en el que estaba cuando se suspendió.

Existen algunas aplicaciones que es necesario mantener en ejecución para que lleven a cabo tareas en segundo plano. Tu aplicación puede seguir reproduciendo audio en segundo plano; para obtener más información, consulta Inicio rápido: agregar audio en una aplicación de Windows en tiempo de ejecución. Las operaciones de transferencia en segundo plano prosiguen aun cuando la aplicación se haya suspendido o finalizado; para obtener más información, consulta Inicio rápido: descargar un archivo.

Para obtener instrucciones, consulta el tema de instrucciones para suspender y reanudar aplicaciones.

Para ver código de ejemplo, consulta los temas sobre:

Visibilidad para las aplicaciones

Tu aplicación dejará de estar visible cuando el usuario cambie a otra aplicación, aunque permanecerá en estado de ejecución hasta que el sistema operativo la suspenda (alrededor de diez segundos). Si el usuario cambia a otra aplicación pero vuelve a la tuya y la activa antes de que se pueda suspender, permanecerá en estado de ejecución.

La aplicación no recibe un evento de activación cuando su visibilidad cambia, puesto que sigue en ejecución. El sistema operativo cambia entre esta y otras aplicaciones según sea necesario. Si la aplicación tiene que realizar alguna acción cuando un usuario cambia de aplicación y vuelve, puede controlar el evento VisibilityChanged | msvisibilitychange.

El evento de visibilidad no está serializado con los eventos de reanudación o activación. No esperes que estos eventos se produzcan en un orden establecido concreto.

Reanudación de una aplicación

Una aplicación suspendida se reanuda cuando el usuario vuelve a ella o cuando el dispositivo sale de un estado de bajo consumo.

Consulta ApplicationExecutionState para ver los estados en los que la aplicación puede estar cuando se reanuda. Cuando una aplicación se reanuda desde el estado Suspended, entra en estado Running y continúa en el punto en el que estaba en el momento de la suspensión. No se pierden datos de la aplicación, porque se guardaron en la memoria. En consecuencia, la mayor parte de las aplicaciones no necesita hacer nada cuando se reanudan. No obstante, la aplicación podría haber estado suspendida durante horas o incluso días. Por tanto, si la aplicación tiene contenido o conexiones de red que puedan haber quedado obsoletos, se deberán actualizar al reanudar. Si una aplicación ha registrado un controlador de eventos para el evento Resuming | resuming, se llama a este controlador de eventos cuando la aplicación se reanude desde el estado Suspended. Puedes actualizar el contenido con este controlador de eventos.

Si se activa una aplicación suspendida para que participe en un contrato entre aplicaciones o una extensión, recibirá primero el evento Resuming | resuming y después el evento Activated | activated.

Cuando se suspende una aplicación, no recibe eventos de red para los que no esté registrada. Estos eventos no se colocan en la cola; simplemente se pierden. Por ello, la aplicación debe comprobar el estado de red cuando se reanude.

Para obtener instrucciones, consulta el tema de instrucciones para suspender y reanudar aplicaciones.

Para ver código de ejemplo, consulta los temas sobre:

  • Applies to Windows Phone

Nota  En Windows Phone, se llama a OnLaunched cada vez que el usuario inicia la aplicación desde el icono Inicio o la lista de aplicaciones, aunque la aplicación esté suspendida en memoria actualmente. En Windows, al iniciar una aplicación suspendida desde el icono Inicio o la lista de aplicaciones no se llama a este método.

Cierre de la aplicación

Por lo general, no es necesario que los usuarios cierren las aplicaciones, sino que pueden dejar que el sistema operativo se encargue de ello. No obstante, los usuarios pueden decidir cerrar una aplicación mediante el gesto de cerrar, presionando Alt y F4 en Windows o mediante el conmutador de tareas en Windows Phone. No incluyas en tu aplicación ningún elemento de interfaz de usuario que permita que los usuarios la cierren, ya que de lo contrario no pasará el proceso de certificación de la Tienda Windows.

No hay un evento especial que indique que el usuario ha cerrado una aplicación.

Después de que el usuario haya cerrado una aplicación, se suspende y finaliza. A continuación, pasa al estado NotRunning durante diez segundos aproximadamente.

En Windows 8.1 y versiones posteriores, una vez que el usuario cierra la aplicación, esta solo se quita de la pantalla y de la lista de cambio, pero no finaliza.

  • Applies to Windows

Nota  Si tu aplicación depende del comportamiento de cierre por parte del usuario de Windows 8, puedes habilitar este comportamiento en la aplicación cuando la actualices a Windows 8.1. Para habilitar el comportamiento de cierre por parte del usuario de Windows 8, configura tu aplicación de Windows 8.1 de forma que finalice cuando la última ventana se cierre con la propiedad Windows.UI.ViewManagement.ApplicationView.TerminateAppOnFinalViewClose.

Si una aplicación ha registrado un controlador de eventos para el evento Suspending | suspending, se llamará a este cuando se suspenda la aplicación. Puedes usar este controlador de eventos para guardar datos de aplicación y de usuario relevantes en un almacenamiento persistente.

Comportamiento de cierre por parte del usuario:  Te recomendamos que decidas cómo debe comportarse la aplicación cuando se active después de que el usuario la haya cerrado. Puede que te sea indiferente que la haya finalizado el sistema operativo o el usuario. Si la aplicación ha de hacer algo distinto cuando la cierra el usuario que cuando la cierra el sistema operativo, puedes usar el controlador de eventos de activación para determinar si la finalizó el sistema operativo o el usuario. Consulta las descripciones de los estados ClosedByUser y Terminated en los documentos relativos a la enumeración ApplicationExecutionState.

Te recomendamos que las aplicaciones no se cierren automáticamente mediante programación a menos que sea absolutamente necesario. Por ejemplo, si una aplicación detecta una pérdida de memoria, se puede cerrar para preservar la seguridad de los datos personales del usuario. Cuando una aplicación se cierra mediante programación, el sistema operativo considera que se ha bloqueado.

Bloqueo de la aplicación

Es preciso que las aplicaciones sigan la experiencia de bloqueo del sistema, que consiste básicamente en volver a la pantalla Inicio. La experiencia de bloqueo del sistema está pensada para que los usuarios vuelvan a lo que estaban haciendo lo antes posible, de modo que no es aconsejable que se abra un cuadro de diálogo de advertencia o cualquier otro tipo de notificación que provoque más retraso. El hecho de que la aplicación desaparezca debe ser suficiente de por sí para que el usuario sepa que algo no ha ido bien.

Si la aplicación se bloquea, deja de responder o genera una excepción, Windows pedirá consentimiento al usuario para remitir un informe del problema a Microsoft. Microsoft te proporciona un subconjunto de datos de error en el informe del problema, de modo que puedas usarlo para mejorar la aplicación. Puedes consultar estos datos en la página de calidad de la aplicación en el panel del Centro de desarrollo.

Cuando el usuario activa una aplicación tras un bloqueo, su controlador de eventos de activación recibe un valor ApplicationExecutionState de NotRunning y debe mostrar simplemente su interfaz de usuario y datos iniciales.

Eliminación de la aplicación

Cuando un usuario elimina la aplicación, esta se quita, junto con todos los datos locales. La eliminación de una aplicación no afecta a los datos del usuario, como los archivos de las bibliotecas Documentos o Imágenes.

Interfaces de programación de ciclo de vida de aplicación

Temas relacionados

Directrices para suspender y reanudar una aplicación
Muestras
Muestra para activar, reanudar y suspender aplicaciones con la WRL

 

 

Mostrar:
© 2015 Microsoft