Ошибка OutOfMemory, используйте lwuit - PullRequest
1 голос
/ 24 ноября 2011

У меня есть кнопка в моей форме.Когда я нажимаю на каждую кнопку, запускаю новую форму с такими же кнопками.Когда я нажимаю много раз, отображается ошибка OutOfMemory.
Я думаю, это потому, что я создаю много объектов формы.
Может быть, можно очистить стек или использовать форму из стека, если форма существует?

Ответы [ 2 ]

3 голосов
/ 27 ноября 2011

Вы сохраняете указатели (ссылки) на старые компоненты, что приводит к утечке памяти.Никогда не храните компоненты в качестве членов вашего класса, если вы не очистите их позже.

1 голос
/ 25 ноября 2011

вам нужно использовать шаблон 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%.

...