2013-07-08 2 views
0

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

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

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

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

Before

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

Showing

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

After

ответ

1

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

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

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