非準確的Alarm有以下幾款,但因為這文章的重點是測試用作鬧鐘的Alarm,所以不就下面幾個方法測試了
- set
- 自API level 19開始變成非準確的Alarm
- setRepeating
- 自API level 19開始,所有重複的Alarm都規定是非準確
- setInexactRepeating
- 因為API level 19的改變,變成跟setRepeating一樣功能
- setExact
- 設定準確的Alarm
- setWindow
- 設定半準確的Alarm
- setAlarmClock
- 自API level 21新增的方法,設定準確的鬧鐘
- getNextAlarmClock
- 自API level 21新增的方法,取得下一個以setAlarmClock新增的Alarm
- cancel
- 取消Alarm
3個set Alarm中都要傳入一個PendingIntent,setExact及setWindow要傳入Alarm的種類,而setAlarmClock規定了使用RTC_WAKEUP這類Alarm。
Alarm分為4類,當中只有RTC_WAKEUP適合用作鬧鐘
下面會測試3個set的方法,看看設定鬧鐘後更改系統時間會有什麼效果。Alarm分為4類,當中只有RTC_WAKEUP適合用作鬧鐘
- RTC
- 實際的時間及不會喚醒系統
- RTC_WAKEUP
- 實際的時間及喚醒系統
- ELAPSED_REALTIME
- 自系統啟動後經過的時間及不會喚醒系統
- ELAPSED_REALTIME_WAKEUP
- 自系統啟動後經過的時間及喚醒系統
現在的時間是14:30,設定了鬧鐘在15:00響,然後更改系統時間會有以下效果
- 更改時間到14:00,鬧鐘會在1小時後(15:00)響
- 更改時間到15:00,鬧鐘會立即響
- 更改時間到15:30,鬧鐘也會立即響
由此看到當更改系統時間時,鬧鐘是不會自動調整時間
現在的時間是14:30,時區是GMT+0,設定了鬧鐘在15:00響,然後更改系統時區會有以下效果
- 更改時區到GMT+1,鬧鐘會在半小時後(16:00)響
- 更改時區到GMT-1,鬧鐘會在半小時後(14:00)響
沒有留言:
張貼留言