Таймер не остановится

Я работаю в Appcelerator с Alloy. Мое приложение имеет несколько экранов, и мне нужен таймер на одном экране. Проблема в том, что когда я возвращаюсь к предыдущему экрану, таймер все еще работает. Мне нужно остановить это.

Я написал этот код:

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 ответ

Решение

Вместо использования событий фокуса и размытия я хотел бы использовать такие события открытия и закрытия, как это:

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

Поскольку при открытии события вы вызываете другую функциюPosicionaBotones, вы можете управлять вызовом этих двух функций в соответствии с вашими требованиями.

Другие вопросы по тегам