2011-05-04 9 views
6

Kronometrem komut dosyası Android'deki arka planda kusursuz bir şekilde çalışıyor (zamanın sayılması), ancak iOS 4.3.2 betiği duraklatıyor gibi görünüyor. IOS'ta, kronometre uygulamanın arka plana gönderildiği sırada durur.iPhone'da Phonegap'ta arka plan JavaScript'i nasıl çalıştırılır - zamanlayıcı/kronometre için?

Zamanlı bir kronometreye (görünümde saat her saniye güncellenir) ve belirli zaman aralıklarında bazı alarm mesajlarına ihtiyacım var.

kronometre için kod aşağıda: Ben yerli çözümlerin farkında değilim, ama çapraz platform uyumluluğu uğruna bir JavaScript çözümü ile sopa istiyorum

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

.

+0

Hey Bir uygulamanın arka planda çalıştığını tespit ettiğim için her yeri aradım. Bana bir öneri verebilir misin? – xdumaine

+0

Android'de doğru çalışıyor mu, 5 saniyede bir kod çalıştırarak çalıştım, arka planda çalışıyor, ama 5 saniyelik sabit aralıkta değil, bunun nedeni CPU'nun uyuduğudur, bu yüzden doğru yaptınız mı? Nasıl ? –

cevap

6

SetIntervals arka planda çalışmadığından, bunun yerine yinelemeli setTimeout kullanırdım.
Bu, + = ile zamanın kaydını tutamayacağınız anlamına gelir. Bu nedenle, (yeni bir Tarih) .getTime(); veya bunun yerine Date.now().

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

uygulamamız yeniden basit olmalıdır ne zaman setTimeout hayata geri gelmezse

.

+0

iyi bir fikir, ama uygulama ön plana geri geldiğinde, kendini otomatik olarak yeniden başlatabileceğini nereden biliyorsun? – carillonator