定时器不会停止

时间:2016-10-29 10:55:26

标签: javascript timer appcelerator setinterval clearinterval

我在合金的Appcelerator工作。我的应用程序有几个屏幕,我需要在一个屏幕上的计时器。问题是当我回到上一个屏幕时,计时器仍在运行。我需要阻止它。

我写了这段代码:

Principal.xml

<Alloy>
  <Window id="principal" class="container" backgroundColor="#c0bcc1" onFocus="EnciendoTimers" onBlur="ApagoTimers" onOpen="PosicionaBotones">
....

Principal.js

var timerP;

function EnciendoTimers(){
timerP = setInterval(function(){
    Ti.API.info( "PANTALLA PRINCIPAL.JS. ENTRO EN TIMERP");
    var EstadoLeidoFranja=EstoyEnFranja();
    //Ti.API.info( "Estoy en index.js "+ EstadoLeidoFranja);
    EnciendoReloj=0;
    if (Estado==4){
            EnciendoReloj=1;
    }
    ActualizaPantalla();    
    Ti.API.info( "PANTALLA PRINCIPAL.JS. SALGO DE TIMERP");
    }, 5000);
}

function ApagoTimers(){ //si pierdo foco apago los timers
    Ti.API.info( "PANTALLA PRINCIPAL.JS. APAGO EL  TIMERP");
    clearInterval(timerP);
}

当主体处于焦点时,timerP开始,但当它失去焦点时,功能ApagoTimers会运行但不会停止timerP。问题在哪里?

1 个答案:

答案 0 :(得分:0)

我不想使用焦点模糊事件,而是喜欢使用这样的开放和关闭事件:

<Alloy>
  <Window id="principal" class="container" backgroundColor="#c0bcc1" onOpen="EnciendoTimers" onClose="ApagoTimers">
.......

因为,您在 打开 事件中调用了另一个函数 PosicionaBotones ,然后您可以根据您的要求管理这两个函数调用。< / p>