2012-03-11 19 views
0

我正試圖通過使用AlarmManager來配置我的小部件更新週期。我現在通過在我的AppWidgetProvider中實現onReceive()方法來實現這個工作,該方法在接收到我的鬧鐘廣播時又調用AppWidgetProvider的onUpdate()方法。這似乎工作,雖然我仍然努力瞭解某些情況。設置AlarmManager.RTC類型警報應該期待什麼行爲?

昨晚,我將鬧鐘配置爲每小時更新一次,並且不會喚醒電話。正如你可以從下面的出adb shell dumpsys alarm看,我已經成功地註冊了一個RTC報警執行每隔一小時:

RTC#1: Alarm{40b354b0 type 1 com.my.app} 
type=1 when=+59m40s6ms repeatInterval=3600000 count=1 
operation=PendingIntent{40c11e70: PendingIntentRecord{40e2b290 com.my.app broadcastIntent}} 

反正我拔掉我的電話,原來在屏幕關閉,就去睡覺了。在我的onReceive()方法中,我將日誌消息輸出到文件以確保捕獲正在發生的事情。今天早上,我看了一下日誌,發現我的onRecieve()方法每小時都會觸發一次。它從來沒有睡過一次鬧鐘。

爲什麼會出現這種情況?雖然我猜想其他可能的流程或警報正在喚醒我的手機,但似乎有些可疑。任何人都可以提供任何信息或建議?

最後,有沒有人知道count=1在我的輸出上面的含義?

+0

[在Android上使用RTC鬧鐘時允許手機進入睡眠狀態](http://support.microsoft.com/kb/6112327/allowing-the-phone-to-sleep-while-using-rtc-alarm-上機器人) – 2013-07-01 10:12:53

回答

相關問題