Ошибка OutOfMemory, используйте lwuit
У меня есть кнопка в моей форме. Когда я нажимаю на каждую кнопку, запускаю новую форму с такими же кнопками. Когда я нажимаю много раз, отображается ошибка OutOfMemory.
Я думаю, это потому, что я создаю много объектов формы.
Может быть, можно очистить стек или использовать форму из стека, если форма есть?
2 ответа
Вам нужно использовать шаблон Singleton для вашего кода. В Singleton Pattern, он будет создавать только один объект вашего класса формы. Если объект равен нулю, он создаст новый, вернет текущий. Для этого, пожалуйста, обратитесь к следующему коду.
// Private Constructor
private static myForm thisForm = null;
private myForm()
{
thisForm = this;
}
// Now to Create Object, you need to create following getInstance Method
public static myForm getInstance()
{
if ( thisForm == null )
{
thisForm = new myForm();
}
return thisForm;
}
попробуйте выше логику во всем вашем коде. Ваша проблема OutOfMemory будет решена на 100%.
Вы сохраняете указатели (ссылки) на старые компоненты, что приводит к утечке памяти. Никогда не храните компоненты как члены вашего класса, если вы не очистите их позже.