Alarm type分為四種
- ELAPSED_REALTIME
- ELAPSED_REALTIME_WAKEUP
- RTC
- RTC_WAKEUP
ELAPSED_REALTIME則不同, 它計時的方式是以手機開機後開始計算, 不會受到系統時間變更所影響, 只是它的缺點在於它與系統時間沒有絕對關係, 較適合定時觸發的動作
而有WAKEUP和沒WAKEUP的差別呢? 手機在待機時是有可能進入休眠狀態的, 此時整個系統是不會有動作的, 在有WAKEUP的Alarm被觸發後, 此時Alarm Manager會去把手機給叫醒, 並且請求Wake lock鎖住手機不立刻進入休眠, 直到intent receiver的onReceive做完才會釋放wake lock, 而RTC, ELAPSED_REALTIME是不會強行叫醒手機的, 而是會等到手機真的醒了之後才會有機會被觸發
無端端叫醒手機, 其實對手機電力的影響不小的, 所以在使用Alarm manager必須要很小心去避免無故的叫醒正在沈睡的手機
沒有留言:
張貼留言