Таймер не остановится
Я работаю в 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, вы можете управлять вызовом этих двух функций в соответствии с вашими требованиями.