2010-07-18 21 views
6

Android, ACTION_TIME_TICK yayını için uykusundan uyuyor mu? Denemeden, sanmıyorum, ama kesin bir cevap arıyorum. Daha sonra, 4 keneler AtTIME_TICK derin uykuda yayınlanacak mı?

registerReceiver(new BroadcastReceiver() { 
    int ctr = 0; 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     testView.setText("Time ticks: " + ++ctr); 
    } 
}, new IntentFilter(Intent.ACTION_TIME_TICK)); 

, ben yaklaşık 5 dakika boyunca ekranı kapalıyken tekrar döndü ve 6 kene okuyun:

My deney almak bir TextView güncellemek için basit BroadcastReceiver kayıt dahil . 13 keneydeyken, ekranı 10 dakikaya çevirdim, daha sonra tekrar açtım ve 14 rakamını okudu. Telefonumdan ne kadar uzak kalsam da, sadece 1-2 kene kadar artıyor gibi görünüyor. Derin uykuda eylemi yayınlamadığından şüphelenir. telefon kapalı olduğunda birlikte giriş yazma, göremiyorum yerine TextView güncelleme:

+0

Tam olarak aynı sorun olduğundan şüpheleniyorum. Herhangi bir çözüm/çözüm buldunuz mu? – mschonaker

cevap

9

Android koduna baktım. Hayır bu yayın telefonu uyandırmayacak. Yayın zaman değişimi için bir AlarmManager.RTC tip Alarm kullanır.

Her dakika tam anlamıyla neden haberdar edilmeye ihtiyacınız var?

Kendi Alarmınızı AlarmManager.RTC_WAKEUP türünü kullanarak ayarlama hakkında ne düşünüyorsunuz?

UYARI: Her dakika yapmanız pilinizi boşaltacaktır. Her saat gibi daha az sıklıkta yapmayı öneririm.

Yararlı olursa lütfen bildirin.

Emmanuel

+0

Tam olarak nasıl kullanacağımı tam olarak hatırlayamıyorum (o süre önce çalışmayı bıraktım), ancak proje, sistem tarafından sağlanandan daha ayrıntılı uptime izlemesi yapmayı içeriyordu. Aslında telefon uykudayken bildirimde bulunmamayı tercih ettiğimi düşünüyorum, ancak bunun doğrulamasını istedim (API dokümantasyonu bu noktada belirsiz olduğundan). –

+0

Alarm yöneticisini kullanmak doğru şekilde çalışır. Teşekkürler. Sadece bu davranışın sebebini bilmek istedim. Buldun. – mschonaker

3

Daha iyi bir deney telefonunuz uyurken Sen LogCat bu göz kulak olabilir

Log.v("Tick","Total ticks: " + ++ctr); 

.