2011-02-24 3 views
8

Je veux connaître la différence entre RTC, RTC_WAKEUP, ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP.
Je veux écrire une application d'alarme où je vais régler l'alarme et fermer mon application et attendre une alarme pour l'heure définie.
Il y aura plusieurs alarmes. En ce moment je suis en train d'écrire pour émulateur, mais plus tard, tester sur l'appareil. Dans l'émulateur, une fois que j'ai mis l'alarme et fermer l'émulateur et le redémarrer, alors il sera effacé, comme je le trouve avec RTC, RTC_WAKEUP et ELAPSED_REALTIME. Je suis confus. Dois-je utiliser ELAPSED_REALTIME_WAKEUP? Je n'ai vu aucun tutoriel utilisant ELAPSED_REALTIME_WAKEUP. s'il vous plaît expliquer. Merci.Android Alarm Quelle est la différence entre les quatre types d'alarmes fournis par AlarmManager et quand utiliser quoi?

+1

voir aussi cette [question] (http://stackoverflow.com/questions/5938213/android-alarmmanager-rtc-wakeup-vs-elapsed-realtime-wakeup) – Tim

+0

@ Tim: bon un. merci –

Répondre

-4

Vous pouvez lire ceci:

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

Vous avez toute la différence beetween alarmes

+0

je peux encore comprendre la différence citant les docs: public static final int ELAPSED_REALTIME temps d'alarme dans SystemClock.elapsedRealtime() (temps depuis le démarrage, y compris le sommeil). Cette alarme ne réveille pas l'appareil; S'il s'éteint alors que l'appareil est en veille, il ne sera pas livré avant la prochaine activation de l'appareil. public static final int RTC Ajouté au niveau de l'API 1 Heure de l'alarme dans System.currentTimeMillis() (horloge murale en UTC). Cette alarme ne réveille pas l'appareil; S'il s'éteint alors que l'appareil est en veille, il ne sera pas livré avant la prochaine activation de l'appareil. –

+1

Exactement les mêmes mots !! –

+0

nous savons qu'il existe un lien pour ce site Web i développeurs. S'il vous plaît mettre quelques explications ici. –

0

Sur le site, vous pouvez obtenir la différence entre le 4 constanst Ci-dessous exemple de l'alarme de réglage

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

Espérons que cela puisse vous être utile

18

ELAPSED_REALTIME

temps d'alarme dans SystemClock.elapsedRealtime() (temps depuis le démarrage, y compris le sommeil). Cette alarme ne réveille pas l'appareil; S'il s'éteint alors que l'appareil est en veille, il ne sera pas livré avant la prochaine activation de l'appareil.

ELAPSED_REALTIME_WAKEUP

temps d'alarme dans SystemClock.elapsedRealtime() (heure depuis le démarrage, y compris le sommeil), qui réveillera l'appareil quand il se déclenche.

RTC

temps d'alarme en System.currentTimeMillis() (temps d'horloge de mur en UTC). Cette alarme ne réveille pas l'appareil; S'il s'éteint alors que l'appareil est en veille, il ne sera pas livré avant la prochaine activation de l'appareil.

RTC_WAKEUP

temps d'alarme dans System.currentTimeMillis() (heure de l'horloge murale en UTC), qui réveillera l'appareil quand il se déclenche.

+4

Encore ne peut pas faire la différence. RTC et ELAPSED_REALTIME ont exactement les mêmes mots. –

8

Types d'alarmes:

  • ELAPSED_REALTIME - Incendies l'intention dans l'attente après la durée spécifiée depuis le démarrage de l'appareil. Si l'appareil est en veille, il se déclenche lorsque l'appareil est réveillé.
  • ELAPSED_REALTIME_WAKEUP - Éteint l'intention en attente après la durée spécifiée depuis le démarrage du périphérique. Il réveille l'appareil s'il est endormi. RTC: déclenche l'intention en attente à une heure spécifiée. Si l'appareil est en veille, il ne sera pas livré jusqu'à la prochaine fois que l'appareil se réveille.
  • RTC_WAKEUP - Déclenche l'intention en attente à une heure spécifiée, en réveillant l'appareil s'il est en veille.
1

Il existe deux types d'horloge générale pour les alarmes: "temps réel écoulé" et "horloge temps réel" (RTC). Le temps réel écoulé utilise le "temps écoulé depuis le démarrage du système" comme référence, et l'horloge en temps réel utilise l'heure UTC (horloge murale). Cela signifie que le temps réel écoulé est adapté à la définition d'une alarme en fonction du temps écoulé (par exemple, une alarme qui se déclenche toutes les 30 secondes), car elle n'est pas affectée par le fuseau horaire/l'environnement local. Le type d'horloge en temps réel convient mieux aux alarmes qui dépendent des paramètres régionaux actuels.

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

Questions connexes