0

我正在为 S40 开发一个应用程序,专注于在诺基亚 Ahsa 305 上工作。在应用程序的某些页面中,我展示了一些表格,其中填充了如此多的数据(21 行,10 列,如 210 标签数据)。当我显示该表的内存使用时,上升了很多,当我尝试再次显示该表时,它给了我 OutOfMemoryException。

是否有一些指导方针可以用于有效的内存管理?

在这里,您可以从我的内存图中找到一些图像。

在显示表格之前:

前

当我展示表格时:

显示

返回表格表格后

后

4

1 回答 1

1

内存不应在该数据量上显着增加。我怀疑这样的表应该占用超过 200kb 的内存,除非您在某些标签中使用图像,在这种情况下它会占用更多。Codename One 中的组件不应该超过 1kb,因为它里面没有很多字段,但是如果每个组件中都有很长的字符串(我怀疑因为它们对于 200 个组件表不可见) .

您可能有内存泄漏,这解释了为什么没有收集 ram,尽管从您的描述中很难说。

我们在 LWUIT 1.5 中遇到了 EncodedImage 的问题,我们在Codename One中修复了该问题,但据我了解,诺基亚人员删除了 Codename One 资源中 EncodedImage 的使用,这确实会增加图像的内存使用量。

于 2013-07-13T12:32:51.927 回答