2011-08-17 15 views
11

¿Qué necesito como desarrollador para estar seguro de que mis aplicaciones admiten el cambio rápido de tareas?Tengo una aplicación de Windows Phone 7 ¿cómo me aseguro de que sea compatible con el cambio rápido de tareas?

Lo ideal es que estoy buscando como una lista de verificación desarrollador de dos y no hacer.

lo hice de búsqueda, pero todo lo que encontré me hizo sentir como si estuviera perdiendo algo, tendían a ser más marketing en lugar de medidas de desarrolladores y detalles técnicos.

Gracias!

Respuesta

14

La mayor parte del trabajo para FAS se maneja de forma automática. Lo principal a tener en cuenta es lo que Tombstoning significa para su aplicación. Al reanudar a través de FAS, la intención es que no tenga que desempolvar nada, por lo que normalmente no es necesario restaurar el estado del modelo de vista ni nada de eso. Hay un par de lugares para los que tendrá que escribir el código: aquí hay una lista de comprobación rápida.

PhoneApplicationPage.OnNavigatingFrom - Experimenta con los controles que está utilizando para asegurarse de que el SAF restaura los datos que estaban allí para usted. Por ejemplo, el control TextBox recuerda correctamente todo lo que le pusiste, pero MediaElement no recuerda el video ni dónde está ubicado el cabezal de reproducción.

PhoneApplicationPage.OnNavigatedTo - Cualquier cosa que guardó apagado en OnNavigatingFrom necesita ser re-aplicado aquí en OnNavigatedTo. Por ejemplo, volver a cargar la fuente de video en MediaElement, reposicionar el video e iniciarlo de nuevo.

Application.Activated - Los eventos args para este evento ahora contienen una propiedad llamada IsApplicationInstancePreserved. Esta propiedad devuelve TRUE cuando la aplicación regresa a través de FAS o FALSE cuando la aplicación regresa de Tombstoning. Entonces tendría un código como este:

private void Application_Activated(object sender, ActivatedEventArgs e) 
{ 
    if (!e.IsApplicationInstancePreserved) 
    { 
     RestoreStateFromTombstone(); 
    } 
} 

private void Application_Deactivated(object sender, DeactivatedEventArgs e) 
{ 
    SaveStateForTombstone(); 
} 

Eso es lo esencial. Todavía no he realizado ninguna prueba de estrés en la infraestructura de FAS para ver dónde se rompe, pero esto me ha servido para la experimentación que he hecho hasta ahora.

Para obtener más información, hay un video corto de la conferencia MIX11 llamado Get Ready for Fast Application Switching presentado por Adina Trufinescu que brinda más detalles sobre FAS que definitivamente me ayudó a comenzar.

/Chris

0

Si va a actualizar desde una aplicación tombstoning normales en Windows Phone 7.0, lo único que tendrá que cambiar es el cheque por e.IsApplicationInstancePreserved en caso Application_Activated - si esta propiedad se establece en verdad, significa que no tiene que rehidratarse desde IsolatedStorage/State. Como se mencionó en excelente respuesta de Chris Koenig:

//Windows Phone 7.0 
private void Application_Activated(object sender, ActivatedEventArgs e) 
{ 
    RestoreStateFromTombstone(); 
} 

//Windows Phone 7.1/7.5/Mango 
private void Application_Activated(object sender, ActivatedEventArgs e) 
{ 
    if (!e.IsApplicationInstancePreserved) 
    { 
     RestoreStateFromTombstone(); 
    } 
} 

Los síntomas de esto son sus DataBindings ya no funciona después de cambiar aplicaciones a través de múltiples tareas (ya que están recreando sus estados de objetos por lo que el enlace de datos ya no es válido)

+0

Y algunos más recursos en MSDN - http://msdn.microsoft.com/en-us/library/ff817008(v=vs.92).aspx Si no lee nada más en esa página, lea el Resumen de los eventos y la aplicación del modelo de ejecución Comportamiento –

Cuestiones relacionadas