Las plantillas de proyecto "estilo Metro" predeterminadas de C# de VS2012 incluyen código en App.xaml.cs (en el reemplazo OnLaunched
) para restaurar el estado de la aplicación después de suspender y terminar. Este código solo se ejecuta cuando LaunchActivatedEventArgs.PreviousExecutionState
es Terminated
, es decir, "La aplicación finalizó después de suspenderse".¿Cómo puedo simular que se termine mi aplicación Metro?
¿Cómo puedo forzar la suspensión y finalización de mi aplicación, por lo que puedo probar esta funcionalidad de suspensión/reanudación en mi aplicación?
cosas I han intentado que no funcionan:
- Si utilizo el gesto "cerrar aplicación" (arrastrar desde la parte superior de la pantalla hasta la parte inferior), a continuación de la siguiente ejecución
PreviousExecutionState
esClosedByUser
. - Si elimino la aplicación, ya sea usando el Administrador de tareas o (si estaba depurando) con el botón "detener" en la barra de herramientas VS - entonces la próxima ejecución es
PreviousExecutionState
esNotRunning
. Esto es cierto incluso si el Administrador de tareas mostró la aplicación como "Suspendida" antes de que finalizara la tarea, por lo que está más matizada que la descripción de "finalizado después de ser suspendido". - Usted piensa Podría cambiar de mi aplicación, y luego abrir muchas otras aplicaciones de estilo Metro hasta que finalmente mi aplicación sea expulsada. Pero incluso si abro todas las aplicaciones de estilo Metro que vienen con Windows 8 Release Preview, aparentemente eso no es suficiente presión de memoria para que Windows finalice mi aplicación. (Supongo que sería menos probable que Windows termine una aplicación que se estaba depurando, así que inicié mi aplicación desde la pantalla de inicio - sin depuración - antes de probar esto.)
Parece que, si Me desconecto de mi aplicación y escribo en una ventana de StackOverflow durante varios minutos, que finalmente terminará mi aplicación, por lo que tal vez haya un componente basado en el tiempo. Pero si tengo que esperar cinco o diez minutos cada vez que mi aplicación finaliza, ese es un ciclo de prueba bastante lento.
Teniendo en cuenta que esto es algo que los desarrolladores tendrán que probar, se podría pensar que habría una forma sencilla y agradable para que un desarrollador fuerce la suspensión y terminación de una aplicación. ¿Existe algún tipo de aplicación de prueba de estrés que acompañe a Visual Studio que forzará la presión de memoria suficiente? ¿Hay algún elemento del menú en Visual Studio que obligue a la finalización de mi aplicación? ¿Cómo se supone que probemos esto?
Si todavía quiere probar el comportamiento de ser la aplicación "expulsado", siempre se puede crear aplicaciones mundo 3 o 4 hola que asignan "hay suficiente memoria" para obtener su sistema tiene pocos recursos. – yms