2016-10-29 2 views
0

私は合金を使ってAppceleratorで働いています。私のアプリはいくつかの画面を持っており、私は1つの画面にタイマーが必要です。問題は、前の画面に戻ったときに、タイマーがまだ実行中であることです。私はそれを停止する必要があります。タイマーは止まらない

私はこのコードを書いた:

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

代わりフォーカスぼかしイベントを使用するので、私はこのようなオープンとクローズイベントを使用するのが大好きだ:、あなたは上の別の関数にPosicionaBotonesを呼び出している

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

のでオープンイベントでは、要件に応じてこれらの2つの関数呼び出しを管理できます。

関連する問題