Тревога Android Какая разница между четырьмя типами тревог, которые предоставляет AlarmManager, и когда что использовать? - PullRequest
8 голосов
/ 24 февраля 2011

Я хочу знать разницу между RTC, RTC_WAKEUP, ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP .
Я хочу написать приложение для будильника, в котором я установлю будильник и закрою свое приложение и ожидаю тревоги на времяset.
Будет несколько сигналов тревоги.Прямо сейчас я пишу для эмулятора, но позже буду тестировать на устройстве.В эмуляторе, как только я установлю будильник, закрою эмулятор и перезапущу его, он будет очищен, как я обнаружил с помощью RTC, RTC_WAKEUP и ELAPSED_REALTIME.Я сбит с толку.Должен ли я использовать ELAPSED_REALTIME_WAKEUP?Я не видел ни одного учебника, использующего ELAPSED_REALTIME_WAKEUP.пожалуйста, объясни.Спасибо.

Ответы [ 5 ]

17 голосов
/ 17 октября 2011

ELAPSED_REALTIME

Время будильника в SystemClock.elapsedRealtime () (время с момента загрузки, включая спящий режим). Этот сигнал тревоги не разбудит устройство; если он гаснет, когда устройство спит, он не будет доставлен до следующего пробуждения устройства.

ELAPSED_REALTIME_WAKEUP

Время будильника в SystemClock.elapsedRealtime () (время с момента загрузки, включая спящий режим), которое активирует устройство при его выключении.

RTC

Время будильника в System.currentTimeMillis () (время настенных часов в UTC). Этот сигнал тревоги не разбудит устройство; если он гаснет, когда устройство спит, он не будет доставлен до следующего пробуждения устройства.

RTC_WAKEUP

Время будильника в System.currentTimeMillis () (время настенных часов в UTC), которое разбудит устройство, когда оно выключится.

8 голосов
/ 09 марта 2015

Типы сигналов тревоги:

  • ELAPSED_REALTIME - запускает ожидающее намерение по истечении заданного промежутка времени с момента загрузки устройства.Если устройство спит, оно срабатывает при следующем пробуждении устройства.
  • ELAPSED_REALTIME_WAKEUP - запускает ожидающее намерение по истечении заданного промежутка времени с момента загрузки устройства.Оно будит устройство, если оно спит.
  • RTC - запускает ожидающее намерение в указанное время.Если устройство спит, оно не будет доставлено до следующего пробуждения устройства.
  • RTC_WAKEUP - запускает ожидающее намерение в указанное время, пробуждая устройство, если оно спит.
1 голос
/ 08 ноября 2016

Существует два основных типа часов для сигналов тревоги: «истекшее реальное время» и «часы реального времени» (RTC).Истекшее реальное время использует «время с момента загрузки системы» в качестве эталона, а часы реального времени используют время UTC (настенные часы).Это означает, что истекшее реальное время подходит для установки будильника на основе времени (например, будильник, который срабатывает каждые 30 секунд), поскольку на него не влияют часовой пояс / локаль.Тип часов реального времени лучше подходит для сигналов тревоги, которые зависят от текущей локали.

Источник: https://developer.android.com/training/scheduling/alarms.html

0 голосов
/ 24 февраля 2011

С сайта вы можете получить разницу между 4 константами. Ниже приведен пример настройки будильника

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);

Надеюсь, это будет вам полезно

0 голосов
/ 24 февраля 2011

Вы могли бы прочитать это:

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

У вас есть все различия между сигналами тревоги

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...