Android AlarmManager - RTC_WAKEUP vs ELAPSED_REALTİME_WAKEUP
Biri bana AlarmManager.RTC_WAKEUP
AlarmManager.ELAPSED_REALTIME_WAKEUP
arasındaki farkı açıklayabilir mi? Belgeleri okudum ama hala gerçekten birini kullanarak ima anlamıyorum.
Örnek kod:
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
scheduledAlarmTime,
pendingIntent);
alarmManager.set(AlarmManager.RTC_WAKEUP,
scheduledAlarmTime,
pendingIntent);
Ne kadar farklı iki kod satırlarını çalıştırır? Zaman kodu bu iki hat birbirine göre yürütülür?
Yardımlarınız için minnettarım.
CEVAP
Şu anda kabul edilen ve oy cevap rağmen, AlarmManager.ELAPSED_REALTİME* türleri ile birlikte SystemClock.() elapsedRealtime her zaman alarm ve zamanlama HATASI saatleri daha güvenilir olmuştur.
AlarmManager ile ELAPSED_REALTİME_WAKEUP kullanarak monoton bir saat önyükleme zamandan başlayarak durulacaktır "ve CPU güç tasarruf modu bile kene devam ediyor, bu yüzden Genel amaçlı olarak tavsiye aralığı zamanlama". Yani
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()
60*1000, pendingIntent);
senin Pendingİntent 1 dk (60*1000 milisaniye) yangın yapacaktır.
Oysa, AlarmManager.Bu standart için RTC_WAKEUP "duvar" mutlak zaman başlangıcından beri geçen milisaniye cinsinden süre. Yani
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
60*10000, pendingIntent);
ayrıca alarm 60 saniye sonra, ama güvenilir değil tetikler, çünkü SystemClock documentation not:
Duvar saati kullanıcı veya telefonu şebekesi tarafından ayarlanabilir (bkz zamanı geriye ya da atlayabilir yani setCurrentTimeMillis(uzun)), ileriye olacağı belli olmaz. Bu saat sadece zaman kullanılmalıdır gerçek dünya tarihleri ve saatleri ile yazışma önemli gibi. takvim veya alarm saati uygulaması. Zaman aralığı ya da süre Ölçümler farklı bir saat kullanmanız gerekir. Eğer kullanıyorsanız Sistem.() currentTimeMillis, dinlemeyi düşünün ACTİON_TİME_TİCK, ACTİON_TİME_CHANGED ve ACTİON_TİMEZONE_CHANGED Niyet değiştiği saati öğrenmek için yayınlar.
Ayrıca, soru sadece *_WAKEUP sadece alarm başvurulan ama aynı zamanda non-uyandırma uyandırma vs alarmları sağlamak ne anladığınızdan emin olmak için AlarmManager belgelerine bakın.
Android AlarmManager...
Android: tüm Pendingİntents AlarmManag...
Nasıl ya tema Studio Android için deği...
Mac OS X üzerinde Android SDK yüklemek...
Hata: Bu Android SDK gerektirir Androi...