GC_CURRENT - приложение Phonegap падает - PullRequest
1 голос
/ 27 февраля 2012

Я хочу заполнить поле лотереи случайными числами, когда пользователь встряхивает телефон.

Обнаружение моего дрожания

function watchForShake(threshold)

{

console.log ("Am Watching for shakes");

axl.watchAcceleration( 
   function (Accel) 

   {

       if (true === Accel.is_updating){

           return; 

       }  

       var diffX = Accel.x - prevX; 

       if (diffX >= threshold)

       {

            console.log("Phone shaken");

            if (gettingRandomNumbers==false){

                randomNumbers();

            }



       }

      prevX = Accel.x

   }

 , function(){} 

 , {frequency : 100}

 );



}

этот метод устанавливает число в поле лотереи как выбранное.

function clickNumber(number)
{      



console.log("ClickNumber invoked with number "+number);


tNumber   = $(number).html();

tPosition = $(number).position(); 




    if($(number).hasClass('selected'))
    {
        lottoNumbers.pop(number);

        console.log("number.hasClass = true");

        $(number).removeClass('selected'); 

        $(number).children().remove();  



    }else{

        if (lottoNumbers.length <= 5) {

            lottoNumbers.push(number);

            console.log("number.hasClass = false");

            $(number).addClass('selected');

            $(number).append('<img src="assets/images/spielschein_kreuz.png" style="position:absolute;top:'+ tPosition.top +'px;left:'+ tPosition.left +'px;"/>');                                               

        }               

    } 


  } 

Следующий метод получает случайные числа и устанавливает их в поле лотереи (используя jquery). Я думаю, что именно этот метод вызывает утечку памяти. Приложение не падает, когда я вынимаю внутренний цикл for, но я не знаю, как это исправить.

function randomNumbers(){ 

console.log("Am Getting Random Numbers");

gettingRandomNumbers=true;

counter = 0;

clearAllNumbers();



while (counter < 6){ 

        zufallsZahl = Math.floor((Math.random()*49)+1);





        zufallsZahlen[counter]=zufallsZahl;  



        if (isUniqueNumber){

            counter++;

            console.log("Zufallszahl: "+zufallsZahl);

            clickNumber($('#ticket_detail .tipfield .tipbox ul li').filter(function(){return $(this).html() == zufallsZahl;}));

        } 

}

gettingRandomNumbers = false;

}    

Я не знаю, что именно вызывает сообщение GC_CONCURRENT. Приложение вылетает и зависает без явного сообщения об ошибке. После нескольких сотрясений приложение вылетает.

Все переменные инициализируются в методе document.ready () в файле index.html. Я не создаю новые объекты при каждом встряхивании, не так ли?

любая помощь или намеки с благодарностью. благодарю вас, Daniel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...