如何在Windows Phone 8中处理大数据时管理或释放内存

本文关键字:数据 管理 内存 释放 处理 Windows Phone | 更新日期: 2023-09-27 18:00:55

我有一个Windows Phone 8应用程序,它有ListBox为用户显示一些项目。现在,突然之间,一个特定用户有300多个项目,当我使用ListBox显示它时,由于内存异常,该应用程序在模拟器和设备中都崩溃了。

我的列表框的数据模板如下:

<ListBox x:Name="testListBox"
         Grid.Row="1"
         toolkit:TiltEffect.IsTiltEnabled="True"
         HorizontalContentAlignment="Center"
         ItemContainerStyle="{StaticResource GenericListBoxContainerStyle}"
         SelectedItem="{Binding}"
         SelectionChanged="testListBox_SelectionChanged">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid Margin="0,2,0,2"
                                      Background="White">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                    <Image Width="80"
                                           Height="60"
                                           Stretch="Fill"
                                           Margin="4,0,4,0"
                                           Source="{Binding file_url, Converter={StaticResource Imageconverter}}"></Image>
                                    <StackPanel Grid.Column="1"
                                                Margin="0,8,0,8">
                                        <TextBlock Margin="2"
                                                   Style="{StaticResource HeaderContentStyle}"
                                                   >
                                        <Run Text=""/>
                                        <Run Text="{Binding test_id}"/>
                                        <Run Text="-"/>
                                        <Run Text="{Binding name}"/>
                                        </TextBlock>
                                        <TextBlock Text="{Binding location}"
                                                   Margin="2"
                                                   Style="{StaticResource DescriptionContentStyle}" />
                                    </StackPanel>
                 </Grid>
         </DataTemplate>
      </ListBox.ItemTemplate>

有人能建议我如何管理或释放内存,这样我的应用程序就不会崩溃,也不会显示内存不足异常。

如何在Windows Phone 8中处理大数据时管理或释放内存

也许页面加载时不应该显示所有项目,创建简单的页面,通过按钮或滚动动态加载项目来控制。也许这会有所帮助:

寻呼数据/在Windows Phone 上无限滚动

也可能是图片中的问题,看看这个问题:

当我的ListBox中有图像时,为什么会出现OutOfMemoryException?

检查图片的问题,然后添加分页或滚动,我想你的问题会消失的。