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, которое действительно увеличило бы использование памяти для изображений.