2011-02-24 14 views
8

我想知道RTC,RTC_WAKEUP,ELAPSED_REALTIME,ELAPSED_REALTIME_WAKEUP之間的區別。
我想寫一個報警應用程序,我將設置報警並關閉我的應用程序,並期望在設定的時間內報警。
會有多個警報。現在我正在寫模擬器,但後來會在設備上測試。在仿真器中,一旦我設置了鬧鐘並關閉仿真器並重新啓動它,那麼它將被清除,因爲我發現RTC,RTC_WAKEUP和ELAPSED_REALTIME。我很困惑。我應該使用ELAPSED_REALTIME_WAKEUP嗎?我還沒有看到使用ELAPSED_REALTIME_WAKEUP的任何教程。請解釋一下 。 謝謝。Android Alarm AlarmManager提供的四種警報和何時使用什麼有什麼區別?

+1

也看到這個[問題](http://stackoverflow.com/questions/5938213/android-alarmmanager-rtc-wakeup-vs-elapsed-realtime-wakeup) – Tim 2011-11-15 12:50:29

+0

@Tim:好一。謝謝 – 2011-11-16 19:17:56

回答

-4

你可以這樣說的:

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

你把所有beetween警報從網站的區別

+0

我仍然可以找出差異引用文檔:在SystemClock.elapsedRealtime 公共靜態最終詮釋ELAPSED_REALTIME 報警時間()時(開機以來,包括睡眠)。該警報不會喚醒設備;如果它在設備睡着的時候熄滅,它將不會在設備下一次喚醒之前交付。 public static final int RTC 在API級別1中添加 System.currentTimeMillis()(掛鐘時間,以UTC表示)中的鬧鐘時間。該警報不會喚醒設備;如果它在設備睡着的時候熄滅,它將不會在設備下一次喚醒之前交付。 – 2014-09-11 04:55:00

+1

完全相同的單詞! – 2014-09-11 04:58:47

+0

我們知道有這個我開發者網站的鏈接。請在這裏提供一些解釋。 – 2016-04-08 07:23:05

0

你可以得到4 constanst 之間的差異下面是例如設置報警

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

希望這會對你有所幫助

18

ELAPSED_REALTIME

SystemClock.elapsedRealtime()中的鬧鐘時間(包括睡眠在內的時間)。該警報不會喚醒設備;如果它在設備睡着的時候熄滅,它將不會在設備下一次喚醒之前交付。

ELAPSED_REALTIME_WAKEUP

報警時間SystemClock.elapsedRealtime()(因爲啓動時,包括睡眠)中,當它熄滅,這將喚醒設備。

RTC

報警時間System.currentTimeMillis的()(掛鐘時間UTC)。該警報不會喚醒設備;如果它在設備睡着的時候熄滅,它將不會在設備下一次喚醒之前交付。

RTC_WAKEUP

報警時間System.currentTimeMillis的()(以UTC掛鐘時間)中,當它熄滅,這將喚醒設備。

+4

仍然無法區分。 RTC和ELAPSED_REALTIME具有完全相同的單詞。 – 2014-09-11 05:00:45

8

類型的報警:

  • ELAPSED_REALTIME - 火因爲設備啓動的時間指定的長度後的待處理的意圖。如果設備處於睡眠狀態,則會在設備下次醒來時觸發。
  • ELAPSED_REALTIME_WAKEUP - 自設備啓動後指定的時間長度後觸發掛起的意圖。如果它睡着了,它會喚醒設備。
  • RTC - 在指定的時間觸發掛起的意圖。如果設備處於睡眠狀態,則直到下次設備喚醒時纔會發送。
  • RTC_WAKEUP - 在指定的時間觸發掛起的意圖,如果睡着了喚醒設備。
1

報警有兩種常規時鐘類型:「經過實時」和「實時時鐘」(RTC)。經過實時使用「系統啓動後的時間」作爲參考,實時時鐘使用UTC(掛鐘)時間。這意味着已過去的實時時間適合於根據時間的推移設置鬧鐘(例如,每30秒觸發一次鬧鐘),因爲它不受時區/區域設置的影響。實時時鐘類型更適合依賴當前語言環境的警報。

來源:https://developer.android.com/training/scheduling/alarms.html

相關問題