Когда сохранить состояние приложения для надгробирования?

StackOverflow https://stackoverflow.com/questions/4624603

  •  30-09-2019
  •  | 
  •  

Вопрос

Мне было интересно, когда более подходит для сохранения модели вида одной страницы.

Я вижу две возможности:

  1. Сохраните состояние каждой страницы (это ViewModel) каждый раз, когда вы навагийте, что это уже сохраняется, если приложение будет прекращено и повторно активировать во время процесса надгробирования.
  2. В случае деактивированного события, пройдите все страницы, которые находятся в стеке навигации и сохраняют их состояние (их просмотраModel), а затем повторно введите его в активированное событие приложения.

Какой правильный способ обращения с этим?

THX SIMONE.

Это было полезно?

Решение

К сожалению, «лучшее» время сохранения состояния будет зависеть от: приложения; сложность моделей, используемых каждой страницей; взаимодействие, которое поддерживает каждую страницу; и сложность моделей, разделяемых между страницами (на уровне приложения).

Как Общая Правило я пытаюсь иметь одну модель на уровне приложений и упорствовать, что на активации / деактивации. Модель для страницы является ссылкой на часть модели уровня приложения, и я только сохраняющуюся страницу информацию о навигации от / на страницу.

Примеры конкретной информации о странице я сохраняю: введенные, но несохраненные данные; и положения прокрутки.

Другие советы

Я полагаю, что это зависит от ваших потребностей, но вряд ли вам нужно снизить документацию, что предлагает отключить событие приложения в качестве соответствующего места для сохранения постоянных и переходных (государственных) данных, а близость должна только сохранить только постоянную.Обзор модели исполнения (См. Диаграмму управления под активацией)

эта статья Также дает приличное объяснение примерами жизненного цикла приложений и надгробия, дифференцируясь между поддержанием / закрытием, деактивацией и надгробием.

Вы не можете предвидеть, когда пользователь изменит приложение переднего плана между изменениями страницы. Однако вы можете предвидеть, что произойдет при закрытии или деактивации. Поэтому сохранение состояния вашей страницы между видами кажется посторонним.

Я не могу проголосовать до предыдущего ответа, потому что у меня недостаточно «репутации», но да, какая-то информация о переходной состоянии должна быть сохранена в Application. Иктиктированное событие, а затем восстановлено в случае приложения.

Если вам нужно хранить что-нибудь между сеансами приложений, вы можете использовать событие Application.Cluzing, но в зависимости от того, что вам нужно хранить, вы можете просто хранить его всякий раз, когда он меняется. Опять же, в зависимости от того, что вам нужно хранить, вы можете либо восстановить его в событии Application.lauching или просто прочитайте его, когда вам это нужно.

Это то, что я имел дал некоторую мысль.

Я обобщел мой взгляд на это на это.

Сохранить как можно раньше.

Что это значит, не хватает любых других императивов, которые мотивируют вас отложить ваше сохранение, сделайте ваше спасение в самую раннюю доступную возможность. Вы можете сохранить непосредственно к вашему главному магазину, или вы можете сохранить до переходного состояния, специально для обработки надгробирования. Вы можете сохранить на заднем плане, пока страница открыта. Вы можете сохранить, когда пользователь запросит навигацию между страницами.

В ситуациях, когда может произойти что-то неожиданное, такое как что-то неожиданное, исключение, требующее внимания пользователей (отметить, что нет времени для этого, если его деактивировано), сохраняя ранние предлагает немного большективность для пользователя.

Императивы, которые могут мотивировать вас отложить сбережения, могут включать

  • В зависимости от вашей архитектуры, может быть неудобно реализовывать сохранение данных на уровне страницы.
  • В зависимости от объема сохранения данных, и архитектуру вашей изолированной модели хранения, она может отвлекать производительность, по существу, пытаясь сэкономить на уровне страницы или поля.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top