Как обработать очистку моих моделей просмотра, когда я удаляю представление из стека вызовов - PullRequest
1 голос
/ 21 марта 2012

В моем приложении я удаляю некоторые представления из записи backstack в приложении Windows Phone.Моя проблема заключается в том, что при удалении представлений модель представления, соответствующая этому представлению, не разрушается.

Я записал очистку с помощью события backkeypress.Но в этом случае при удалении представления из backstack этот блок кода не будет выполняться.Таким образом, если мы будем перемещаться по этой странице 3-4 раза, объем памяти увеличится, и приложение упадет.Как я могу справиться с этой ситуацией?

1 Ответ

1 голос
/ 25 апреля 2012

Для меня эта проблема говорит о том, что где-то в вашем коде вы храните ссылку на ваши модели представлений.Например, используете ли вы фабричную модель для построения моделей представлений из Models?Если это так, то когда ваши виды будут уничтожены, модели представлений останутся, потому что у фабрики все еще может быть ссылка на модели видов.

Я предлагаю вам сделать следующее:

  • Внимательно посмотрите на свой код, и особенно на каждое место, где создается модель представления, или она привязана к модели, илихранится в массиве и т. д.

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

Если в вашем приложении нет объектов, ссылающихся на модель представления, телефон автоматически избавится от модели представления, освобождаяПамять.

Однако я бы сказал, что если вы используете достаточно памяти, чтобы ваше приложение зависало из-за того, что модели представления не разрушаются, вы можете захотеть изучить некоторую оптимизацию производительности в конце вашего проекта.Модели просмотра в большинстве приложений не должны вызывать такого рода использование памяти, если только приложение не используется в течение очень длительного времени (модели представления не должны занимать 3-4 страницы, они занимают больше, чем выделенное приложением 90 МБ памяти).

Надеюсь, это поможет!Попробуйте (если можете) опубликовать пример кода, если вы все еще застряли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...