這是一篇文章,要求我確認(或反駁)我認爲Android中的鬧鐘發生了什麼。此主題在博客和StackOverflow帖子中以某種頻率出現,但我沒有找到這兩點的清晰解釋(下文)。使用AlarmManager設置和取消鬧鐘(Android)
下面的代碼旨在設置和報警,然後解除它。這是行不通的。
Intent intent = new Intent(context, AlarmReceiver.class);
intent.setAction(AlarmReceiver.ALERT_GUARD_CHECKIN);
PendingIntent sender = PendingIntent.getBroadcast(context, _id, intent,
PendingIntent.FLAG_ONE_SHOT);
AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, now.getTime().getTime(), sender);
Intent toCancel = new Intent(context, AlarmReceiver.class);
toCancel.setAction(AlarmReceiver.ALERT_GUARD_CHECKIN);
PendingIntent pendingToCancel = PendingIntent.getBroadcast(context,
_id, toCancel, PendingIntent.FLAG_CANCEL_CURRENT);
am.cancel(pendingToCancel);
它做的工作,如果,強似PendingIntent.FLAG_ONE_SHOT到PendingIntent.getBroadast的第一次調用(),我通過零來代替。我不相信這種行爲是有記錄的。
如果PendingIntent.getBroadast()(上面的_id)的第二個參數不相同,代碼也不起作用。我不相信這是記錄。在Android文檔中,第二個參數記錄爲「發件人的私人請求代碼(當前未使用)」。
問題是我是否正確描述了這種行爲,或者這些概括是否屬於現象。
好的,謝謝你的確認。這是包含在文檔中的重要內容! –