2011-05-04 41 views
6

我的秒錶腳本在Android的後臺運行完美(計時),但iOS 4.3.2似乎暫停腳本。在iOS上,秒錶在應用程序發送到後臺時停止。如何在iPhone上的Phonegap中運行背景JavaScript - 用於定時器/秒錶?

我需要一個運行秒錶(時間顯示在視圖中每秒更新一次)以及某些報警消息在規定的時間點。

的秒錶的代碼如下:

 this.timer = window.setInterval(function(){ 
      instance.runtime += Stopwatch.INCREMENT; 
      instance.doDisplay(); 
     }, Stopwatch.INCREMENT); 

我知道本地的解決方案,但想堅持使用跨平臺兼容性的緣故,一個JavaScript的解決方案。

+0

嘿,我一直在尋找各地檢測應用程序在後臺運行。你能給我一個建議嗎? – xdumaine 2012-01-26 14:53:51

+0

它是否在Android上準確工作,我試着讓代碼每隔5秒運行一次,它在後臺運行,但不是在5秒鐘內修復,我認爲這是因爲CPU睡眠了,所以你是否準確了?怎麼樣 ? – 2014-01-19 18:58:37

回答

6

由於setIntervals不能在後臺工作,我會使用遞歸setTimeout來代替。
這意味着你無法使用+ =來跟蹤時間,所以你需要使用(new Date).getTime();或Date.now()代替。

this.timer = function myTimer() { 
    instance.currentTime = (new Date).getTime(); 
    instance.doDisplay(); 
    setTimeout(myTimer, Stopwatch.INCREMENT); 
} 

如果setTimeout的不回來的生命,當應用程序不應該是簡單的重新啓動。

+0

好主意,但你怎麼知道應用何時回到前臺,所以它可以自動重啓? – carillonator 2012-08-27 00:44:28

相關問題