首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从调用堆栈中删除视图时,如何处理视图模型的清理

从调用堆栈中删除视图时,如何处理视图模型的清理
EN

Stack Overflow用户
提问于 2012-03-21 14:39:45
回答 1查看 442关注 0票数 1

在我的应用程序中,我从Windows phone应用程序的backstack条目中删除了一些视图。我的问题是,在删除视图时,与该视图相对应的视图模型不会被破坏。

我已经在backkeypress事件中写入了清理。但在这种情况下,当从后台堆栈中删除视图时,此代码块将不会执行。因此,如果我们浏览页面3-4次,内存就会增加,应用程序就会崩溃。我该如何处理这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-25 10:50:45

这个问题告诉我,您在代码中的某个位置存储了对视图模型的引用。例如,您是否正在使用工厂模型从模型构造视图模型?如果是这样的话,当您的视图被销毁时,视图模型将保留下来,因为工厂可能仍然有对视图模型的引用。

我建议您执行以下操作:

  • 仔细查看您的代码,尤其是查看创建视图模型、绑定到模型或存储在数组中的每个位置等。
  • 如果您发现除了视图之外还存储了对视图模型的引用的代码,则当用户导航离开视图所在的页面时,请确保添加代码以清除该引用。

一旦你的应用中没有引用视图模型的对象,手机就会自动处理你的视图模型,从而释放内存。

然而,我想说的是,如果你使用了足够的内存导致你的应用程序崩溃,因为视图模型没有被破坏,你可能想要在项目结束时研究一些性能优化。大多数应用程序中的视图模型不应该导致这种内存使用,除非应用程序使用了很长时间(视图模型在3-4个页面的过程中,占用的内存不应该超过应用程序分配的90MB )。

希望这能有所帮助!如果你仍然被卡住了,试着(如果你可以)发布一些示例代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9799732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档