Pregunta

Me preguntaba cuando es más apropiado para salvar la vista del modelo de las páginas individuales.

Veo dos posibilidades:

  1. Guardar el estado de cada página (que es modelo de vista) cada vez que se navagitefrom tal manera que ya se guarda si la aplicación pasa a ser terminado y reactivada durante el proceso de tombstoning
  2. En la aplicación desactiva caso, pasar por todas las páginas que están en la pila de navegación y guardar su estado (su modelo de vista) y luego volver a inyectarla en el caso de aplicación activada.

¿Cuál es la forma correcta de manejarlo?

Thx Simone

¿Fue útil?

Solución

Por desgracia, la "mejor" momento para guardar el estado dependerá de: la aplicación; la complejidad de los modelos utilizados por cada página; la interacción que admite cada página; y la complejidad de los modelos compartida entre las páginas (en el nivel de aplicación).

Como General Intento gobernar y tener un modelo único a nivel de aplicación y persistir en la que la activación / desactivación. El modelo para una página es una referencia a una parte del modelo de nivel de aplicación y sólo persisten información específica en la página de navegación de / a una página.

Los ejemplos de información de la página específica persisto son: los datos introducidos, pero no guardados; y las posiciones de desplazamiento.

Otros consejos

supongo que depende de sus necesidades, pero es poco probable que necesita para alejarse de la documentación, lo que sugiere la aplicación desactiva evento como el lugar apropiado para guardar los datos persistentes y transitorios (estado), mientras que cerca sólo debe guardar persistente. modelo de ejecución general (ver el control diagrama de fluir bajo de activación)

En este artículo también da una explicación decente con ejemplos del ciclo de vida de la aplicación y tombstoning, diferenciando entre el soporte hacia fuera / cierre, desactivar, y tombstoning.

No se puede anticipar cuando un usuario va a cambiar la aplicación en activo entre los cambios de página. Puede, sin embargo, anticipar lo que sucederá cuando se cierre o desactivación. Por lo tanto, el ahorro de su estado de la página entre las vistas parece extraña.

No se puede votar hasta la respuesta anterior, ya que no tengo suficiente "reputación", pero sí cualquier información de estado transitorio debe ser persistido en caso Application.Deactivated y luego restaurada en caso Application.Activated de cabeceo apoyo .

Si necesita almacenar cualquier cosa entre sesiones de aplicación, entonces usted podría utilizar el evento Application.Closing, pero dependiendo de lo que necesita para almacenar, usted podría almacenarlo cada vez que cambia. Una vez más, dependiendo de lo que necesita para almacenar, puede restaurarlo en caso Application.Launching, o simplemente leerlo cuando lo necesite.

Esto es algo que he pensado un poco también.

He generalicé mi punto de vista de ella para esto.

Guardar tan pronto como sea posible.

¿Qué es este medio, a falta de cualquier otro imperativos, que motivará para aplazar su reserva, hacen su parada en la primera oportunidad disponible. Es posible guardar directamente en su tienda principal, o puede guardar en estado transitorio específicamente para manejar tombstoning. Es posible guardar en el fondo mientras que la página está abierta. Es posible guardar cuando el usuario solicita para navegar entre páginas.

En situaciones en las que puede ocurrir algo inesperado, como la pérdida de poder, una excepción que requiere la atención de los usuarios (teniendo en cuenta no hay tiempo para esto si está desactivado), el ahorro temprana ofrece un poco más dependendability al usuario.

imperativos que podrían motivar a usted difiera de ahorro, podría incluir

  • En función de la arquitectura, puede ser inconveniente para poner en práctica el ahorro de datos a nivel de página.
  • En función del volumen de datos que se salvó, y la arquitectura de su modelo de almacenamiento aislado, se puede perjudicar el rendimiento sustancialmente tratando de salvar a un nivel de página o en el campo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top