在我的应用程序中,我从Windows phone应用程序的backstack条目中删除了一些视图。我的问题是,在删除视图时,与该视图相对应的视图模型不会被破坏。
我已经在backkeypress事件中写入了清理。但在这种情况下,当从后台堆栈中删除视图时,此代码块将不会执行。因此,如果我们浏览页面3-4次,内存就会增加,应用程序就会崩溃。我该如何处理这种情况?
发布于 2012-04-25 10:50:45
这个问题告诉我,您在代码中的某个位置存储了对视图模型的引用。例如,您是否正在使用工厂模型从模型构造视图模型?如果是这样的话,当您的视图被销毁时,视图模型将保留下来,因为工厂可能仍然有对视图模型的引用。
我建议您执行以下操作:
一旦你的应用中没有引用视图模型的对象,手机就会自动处理你的视图模型,从而释放内存。
然而,我想说的是,如果你使用了足够的内存导致你的应用程序崩溃,因为视图模型没有被破坏,你可能想要在项目结束时研究一些性能优化。大多数应用程序中的视图模型不应该导致这种内存使用,除非应用程序使用了很长时间(视图模型在3-4个页面的过程中,占用的内存不应该超过应用程序分配的90MB )。
希望这能有所帮助!如果你仍然被卡住了,试着(如果你可以)发布一些示例代码。
https://stackoverflow.com/questions/9799732
复制相似问题