繁体   English   中英

列表框:WP8上的内存不足异常

[英]ListBox: Out Of Memory Exception on WP8

我的透视图中有两个ListBox,每个都有一个图像。

<DataTemplate x:Key="PostsFieldItemTemplate" >
    ...
      <Image  Grid.Row="0" Margin="5" Width="100" Height="100" HorizontalAlignment="Left" Source="{Binding WImage}" Stretch="UniformToFill"/>
    ...
</DataTemplate> 

<DataTemplate x:Key="ItemTemplateListBoxAnimation">
    ...
    <Image Width="235" Height="210" Grid.Row="0" Source="{Binding tImage}" Stretch="UniformToFill"/>
    ...
</DataTemplate>

我在代码中添加URL字符串到图像

PostsField.Items.Add(new ListPost(post.id, api.improveText(post.title), api.improveText(post.excerpt), post.attachments[0].url, api.improveDate(post.date)));

GridImages.Items.Add(new TempGrid(post.id, post.attachments[0].url, api.improveText(post.title), api.improveDate(post.date)));

然后,我按我的按钮“加载更多”,并在某个时候收到异常(内存不足)。 我在ItemTemplates中注释了<Image Source="{Binding MyImage}"... /> ,一切都OK。

您能告诉我,我该怎么做才能改善我的图像?

应用程序的内存使用量有限制,详细信息在这里。 你可以在这里找到细节

正如您提到的,您正在从API(我认为是Web API)加载图像。 并在单击某些按钮的列表框中显示它们,并在某些时候抛出内存不足异常。 现在在低内存电话上,一个应用程序最多可以使用150MB的电话内存。 当您的应用超出该限制时,将引发此异常。 您可以做的是从列表框中删除/处理以前添加的图像以释放内存,然后添加新图像。

您可以通过使用DeviceExtendedProperties.GetValue(String)方法检查ApplicationWorkingSetLimit值来检查应用程序可用的内存限制。 有关如何执行此操作的示例,请参阅如何为Windows Phone 8的低内存电话禁用应用程序中的功能

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM