OutOfMemoryError в таблице LWUIT

Я занимаюсь разработкой приложения для S40, ориентированного на работу с Nokia Ahsa 305. На некоторых страницах приложения я показываю несколько таблиц, заполненных таким большим количеством данных (21 строка с 10 столбцами, например 210 данных Label). Когда я показываю эту таблицу, использование памяти сильно возрастает, и когда я пытаюсь снова показать таблицу, это дает мне OutOfMemoryException.

Есть ли какие-то рекомендации, которые могут быть выполнены для эффективного управления памятью?

Здесь вы можете найти некоторые изображения из моей диаграммы памяти.

Перед показом таблицы:

До

Когда я показываю таблицу:

показ

После возвращения из таблицы формы

После

1 ответ

Решение

Память не должна заметно увеличиваться на таком количестве данных. Я сомневаюсь, что таблица, подобная этой, должна занимать более 200 КБ памяти, если вы не используете изображения на некоторых этикетках, в этом случае это займет больше. Компонент под кодовым именем Один не должен занимать более 1 КБ, поскольку в нем не так много полей, однако, если у вас есть очень длинные строки в каждом компоненте (в чем я сомневаюсь, так как они не будут видны для таблицы из 200 компонентов),

У вас может быть утечка памяти, которая объясняет, почему оперативная память не собирается, хотя это трудно сказать из вашего описания.

У нас была проблема с EncodedImage в LWUIT 1.5, которую мы исправили в Codename One, однако, насколько я понял, ребята из Nokia устранили использование EncodedImage в ресурсах Codename One, которое действительно увеличило бы использование памяти для изображений.

Другие вопросы по тегам