我想知道RTC,RTC_WAKEUP,ELAPSED_REALTIME,ELAPSED_REALTIME_WAKEUP之間的區別。
我想寫一個報警應用程序,我將設置報警並關閉我的應用程序,並期望在設定的時間內報警。
會有多個警報。現在我正在寫模擬器,但後來會在設備上測試。在仿真器中,一旦我設置了鬧鐘並關閉仿真器並重新啓動它,那麼它將被清除,因爲我發現RTC,RTC_WAKEUP和ELAPSED_REALTIME。我很困惑。我應該使用ELAPSED_REALTIME_WAKEUP嗎?我還沒有看到使用ELAPSED_REALTIME_WAKEUP的任何教程。請解釋一下 。 謝謝。Android Alarm AlarmManager提供的四種警報和何時使用什麼有什麼區別?
回答
我仍然可以找出差異引用文檔:在SystemClock.elapsedRealtime 公共靜態最終詮釋ELAPSED_REALTIME 報警時間()時(開機以來,包括睡眠)。該警報不會喚醒設備;如果它在設備睡着的時候熄滅,它將不會在設備下一次喚醒之前交付。 public static final int RTC 在API級別1中添加 System.currentTimeMillis()(掛鐘時間,以UTC表示)中的鬧鐘時間。該警報不會喚醒設備;如果它在設備睡着的時候熄滅,它將不會在設備下一次喚醒之前交付。 – 2014-09-11 04:55:00
完全相同的單詞! – 2014-09-11 04:58:47
我們知道有這個我開發者網站的鏈接。請在這裏提供一些解釋。 – 2016-04-08 07:23:05
你可以得到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);
希望這會對你有所幫助
ELAPSED_REALTIME
SystemClock.elapsedRealtime()中的鬧鐘時間(包括睡眠在內的時間)。該警報不會喚醒設備;如果它在設備睡着的時候熄滅,它將不會在設備下一次喚醒之前交付。
ELAPSED_REALTIME_WAKEUP
報警時間SystemClock.elapsedRealtime()(因爲啓動時,包括睡眠)中,當它熄滅,這將喚醒設備。
RTC
報警時間System.currentTimeMillis的()(掛鐘時間UTC)。該警報不會喚醒設備;如果它在設備睡着的時候熄滅,它將不會在設備下一次喚醒之前交付。
RTC_WAKEUP
報警時間System.currentTimeMillis的()(以UTC掛鐘時間)中,當它熄滅,這將喚醒設備。
仍然無法區分。 RTC和ELAPSED_REALTIME具有完全相同的單詞。 – 2014-09-11 05:00:45
類型的報警:
- ELAPSED_REALTIME - 火因爲設備啓動的時間指定的長度後的待處理的意圖。如果設備處於睡眠狀態,則會在設備下次醒來時觸發。
- ELAPSED_REALTIME_WAKEUP - 自設備啓動後指定的時間長度後觸發掛起的意圖。如果它睡着了,它會喚醒設備。
- RTC - 在指定的時間觸發掛起的意圖。如果設備處於睡眠狀態,則直到下次設備喚醒時纔會發送。
- RTC_WAKEUP - 在指定的時間觸發掛起的意圖,如果睡着了喚醒設備。
報警有兩種常規時鐘類型:「經過實時」和「實時時鐘」(RTC)。經過實時使用「系統啓動後的時間」作爲參考,實時時鐘使用UTC(掛鐘)時間。這意味着已過去的實時時間適合於根據時間的推移設置鬧鐘(例如,每30秒觸發一次鬧鐘),因爲它不受時區/區域設置的影響。實時時鐘類型更適合依賴當前語言環境的警報。
來源:https://developer.android.com/training/scheduling/alarms.html
- 1. 角色提供者中這兩種方法有什麼區別?
- 2. snort警報和snort日誌規則操作有什麼區別?
- 3. android的abc.db和abc.sqlite有什麼區別?
- 4. MTOM和SAAJ提供的附件功能有什麼區別?
- 5. 有什麼區別`和$(Bash中有什麼區別?
- 6. 使用TalkBack時,Android focusable和importantForAccessibility有什麼區別?
- 7. 使用物化時有什麼區別?
- 8. System.Data.SqlClient和SQLNCLI10.1提供程序有什麼區別?
- 9. Spring Roo中提供者DATANUCLEUS和DATANUCLEUS_2有什麼區別?
- 10. Android JPEG和libjpeg有什麼區別?
- 11. android:gravity和android有什麼區別:layout_gravity
- 12. android:layout_width和android有什麼區別:width
- 13. Android:'orientation'和'screenLayout'有什麼區別?
- 14. Android。 ShapeDrawable和GradientDrawable有什麼區別?
- 15. 使用int [] []和int [,]有什麼區別?
- 16. 使用和extern有什麼區別?
- 17. 使用WorkflowInvoker和WorkflowApplication有什麼區別?
- 18. 有什麼區別使用=和:在javascript
- 19. Android中的App框架提供的時鐘有什麼主要區別?
- 20. ==和===有什麼區別?
- 21. ==和===有什麼區別?
- 22. 有什麼區別? :和||
- 23. ==和===有什麼區別?
- 24. '=='和'==='有什麼區別?
- 25. `&`和`ref`有什麼區別?
- 26. 有什麼區別:。!和:r!?
- 27. | 0和~~有什麼區別?
- 28. Appender和〜有什麼區別?
- 29. 服務提供者和居民服務提供者有什麼區別
- 30. 在DotNetNuke中,認證提供者和成員提供者有什麼區別?
也看到這個[問題](http://stackoverflow.com/questions/5938213/android-alarmmanager-rtc-wakeup-vs-elapsed-realtime-wakeup) – Tim 2011-11-15 12:50:29
@Tim:好一。謝謝 – 2011-11-16 19:17:56