2016-10-29 171 views
0

我正在Appcelerator中使用合金。我的應用程序有幾個屏幕,我需要一個屏幕上的計時器。問題是當我回到前一個屏幕時,定時器仍在運行。我需要阻止它。計時器不會停止

我寫了這個代碼:

Principal.xml

​​

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

只是好奇,是否有可能窗口被創建/毀壞不止一次,然後你有多個間隔運行?如果發生這種情況,您可以使timerP成爲整個應用程序的全局來解決該問題。 –

回答

0

而不是使用重點模糊事件,我喜歡使用打開和關閉事件是這樣的:

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

因爲,你是調用另一個函數PosicionaBotones開放事件,那麼你可以根據你的要求管理這兩個函數調用。