我在合金的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
。问题在哪里?
答案 0 :(得分:0)
我不想使用焦点和模糊事件,而是喜欢使用这样的开放和关闭事件:
<Alloy>
<Window id="principal" class="container" backgroundColor="#c0bcc1" onOpen="EnciendoTimers" onClose="ApagoTimers">
.......
因为,您在 打开 事件中调用了另一个函数 PosicionaBotones ,然后您可以根据您的要求管理这两个函数调用。< / p>