GC_CURRENT - Phonegap App崩溃

时间:2012-02-27 16:31:24

标签: javascript android cordova

当用户摇动手机时,我想用随机数填写彩票领域。

我的震动检测

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消息的原因。应用程序崩溃并冻结,没有明确的错误消息。检测到几次震动后,应用程序崩溃了。

所有变量都在index.html文件的document.ready()方法中初始化。我不会在每次摇晃时创造新物体,是吗?

任何帮助或提示非常感谢。 谢谢, 丹尼尔

0 个答案:

没有答案