计时器不会停止

The Timer won’t stop

我在 Alloy 的 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);
}

当 principal 获得焦点时,timerP 启动,但当它失去焦点时,函数 ApagoTimers 运行但不会停止 timerP。问题出在哪里?

我不想使用 focusblur 事件,而是喜欢使用这样的打开和关闭事件:

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

由于您在 open 事件上调用另一个函数 PosicionaBotones,那么您可以根据您的要求管理这两个函数调用。