2011-02-24 21 views
8

Ben RTC RTC_WAKEUP, ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP arasındaki farkı bilmek istiyorum.
ben alarm ayarlamak ve benim uygulamayı kapatın ve zaman seti için alarm için bekliyoruz bir alarm uygulaması yazmak istiyorum.
birden alarmlar olacak. Şu anda emülatör için yazıyorum ama daha sonra cihazda test edecek. Alarmı ayarla ve emülatör kapatıp yeniden bir kere ben RTC, RTC_WAKEUP ve ELAPSED_REALTIME ile buldukça emülatörü olarak, o zaman, silinir. Kafam karıştı. ELAPSED_REALTIME_WAKEUP kullanmalı mıyım? ELAPSED_REALTIME_WAKEUP kullanarak herhangi bir eğitim görmedim. lütfen açıklayınız. Teşekkürler.Android Alarmı?

+1

ayrıca bkz bu [soru] (http://stackoverflow.com/questions/5938213/android-alarmmanager-rtc-wakeup-vs-elapsed-realtime-wakeup) – Tim

+0

@Tim: İyi bir. Ben Hala dokümanlar alıntı farkını anlamaya –

cevap

-4

Bu okuyabilir:

http://developer.android.com/reference/android/app/AlarmManager.html

Sen siteden alarmları beetween tüm farkı

+0

teşekkür ederim: SystemClock.elapsedRealtime içinde public static final int ELAPSED_REALTIME Alarm zamanı() (zaman çizme beri, uyku dahil). Bu alarm cihazı uyandırmaz; Cihaz uykudayken sönerse, cihaz bir sonraki uyanana kadar teslim edilmeyecektir. Genel statik son int RTC Ekleme API düzeyinde 1 System.currentTimeMillis() öğesinde alarm süresi (UTC'de duvar saati saati). Bu alarm cihazı uyandırmaz; Cihaz uykudayken sönerse, cihaz bir sonraki uyanana kadar teslim edilmeyecektir. –

+1

Tam olarak aynı kelimeler! –

+0

Bu geliştiriciler web sitesi için bir bağlantı olduğunu biliyoruz. lütfen biraz açıklama yapınız. –

0

var size 4 constanst arasındaki farkı almak Aşağıda ayar alarmı

bir örnektir
Calendar mCalendar = Calendar.getInstance(); 
     mCalendar.add(Calendar.SECOND, 20); 
     Intent intent_Timer = new Intent(TimerEvents.this, AlarmReceiver.class); 
     intent_Timer.putExtra("alarm_message", "Drax Rules!!!"); 
     // In reality, you would want to have a static variable for the request 
     // code instead of 192837 
     PendingIntent sender = PendingIntent.getBroadcast(this, 192837, 
       intent_Timer, PendingIntent.FLAG_UPDATE_CURRENT); 
     // Get the AlarmManager service 
     AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
     am.set(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), sender); 

Bu yardımcı size yardımcı olacaktır

18

ELAPSED_REALTIME SystemClock.elapsedRealtime içinde

Alarm zamanı() (zaman uyku dahil çizme, beri). Bu alarm cihazı uyandırmaz; Cihaz uykudayken sönerse, cihaz bir sonraki uyanana kadar teslim edilmeyecektir. o çaldığında cihazı uyanacaktır (uyku dahil çizme beri süre) SystemClock.elapsedRealtime içinde

ELAPSED_REALTIME_WAKEUP

Alarm zamanı(). System.currentTimeMillis içinde

RTC

Alarm zamanı() (UTC olarak duvar saati süresi). Bu alarm cihazı uyandırmaz; Cihaz uykudayken sönerse, cihaz bir sonraki uyanana kadar teslim edilmeyecektir. o çaldığında cihazı uyanacaktır System.currentTimeMillis içinde

RTC_WAKEUP

Alarm zamanı() (UTC olarak duvar saati süresi). Alarmlar

+4

Yine de farkı alamıyorum. RTC ve ELAPSED_REALTIME aynı kelimelere sahiptir. –

8

Türleri:

  • ELAPSED_REALTIME - Cihaz önyükleme çünkü belirli bir süre sonra bekleyen niyet püskürtür. Cihaz uykuda ise, cihaz uyanık olduğunda yanar.
  • ELAPSED_REALTIME_WAKEUP - Bekleme amacını, aygıtın önyüklemesinden bu yana belirtilen süreden sonra başlatır. Uykuda ise cihazı uyandırır.
  • RTC - belirli bir zamanda beklemede niyet püskürtür. Cihaz uykuda ise, cihaz bir sonraki uyanana kadar teslim edilmeyecektir.
  • RTC_WAKEUP - Bekleme amacını, beklemede olan bir zamanda uyandırmak üzere belirli bir zamanda tetikler.
1

Alarmlar için iki genel saat türü vardır: "geçen gerçek zaman" ve "gerçek zaman saati" (RTC). Geçen zaman, bir referans olarak "sistem açılışından beri geçen süreyi" kullanır ve gerçek zamanlı saat UTC (duvar saati) süresini kullanır. Bu, geçen gerçek zamanın, zaman dilimi/yerel ayardan etkilenmediği için zamanın geçişine (örneğin, her 30 saniyede bir tetikleyen bir alarm) dayalı bir alarmın ayarlanması için uygun olduğu anlamına gelir. Gerçek zamanlı saat türü, geçerli yerel ayarlara bağlı alarmlar için daha uygundur.

Kaynak: https://developer.android.com/training/scheduling/alarms.html