Timer
Android 的 Timer 類可以用來計劃需要迴圈執行的任務,Timer 的問題是它需要用 WakeLock 讓 CPU 保持喚醒狀態,這樣會大量消耗手機電量,大大減短手機待機時間。這種方式不能滿足我們的需求。
AlarmManager
AlarmManager 是 Android 系統封裝的用於管理 RTC 的模組,RTC (Real Time Clock) 是一個獨立的硬體時鐘,可以在 CPU 休眠時正常執行,在預設的時間到達時,通過中斷喚醒 CPU。
這意味著,如果我們用 AlarmManager 來定時執行任務,CPU 可以正常的休眠,只有在需要執行任務時醒來一段很短的時間。極光推送的 Android SDK 就是基於這種技術實現的。