我管理一切都可以創(chuàng)建一個(gè)通知服務(wù),用于通過(guò)警報(bào)觸發(fā)通知。不幸的是,使用AlarmManager設(shè)置鬧鐘無(wú)法正常工作。它在幾分鐘后發(fā)射(不完全是幾小時(shí),這表明存在時(shí)區(qū)問(wèn)題)。重復(fù)周期是1周,所以我使用常量INTERVAL_DAY并將其乘以7.為了確保一個(gè)PendingIntent不替換另一個(gè),我將dayOfWeek作為第二個(gè)參數(shù)傳遞給PendingIntent.getService()。我通過(guò)記錄來(lái)檢查警報(bào)發(fā)射時(shí)間的正確性:Log.d(TAG, "next alarm " + df.format(cal.getTime()));是否真的沒(méi)有辦法列出所有報(bào)警集 - 至少是我自己的應(yīng)用程序?我相信這是追蹤錯(cuò)誤的唯一方法。我的代碼:cal.setTimeInMillis(System.currentTimeMillis());cal.add(Calendar.DATE, 1);cal.set(Calendar.HOUR_OF_DAY, hour);cal.set(Calendar.MINUTE, minute);Log.d(TAG, "next alarm " + df.format(cal.getTime()));Intent showNotificationIntent = new Intent(context, NotificationService.class);dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);alarmIntent = PendingIntent.getService(context, dayOfWeek, showNotificationIntent, 0);getAlarmManager(context).setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), INTERVAL_WEEK, alarmIntent);我想提供每天報(bào)警,但在不同的時(shí)間,可以由用戶設(shè)置。所以我最多使用7個(gè)警報(bào),每周應(yīng)該發(fā)射一次。即使在閱讀了類(lèi)似問(wèn)題的大量答案之后(我不打算創(chuàng)建一個(gè)重復(fù)的問(wèn)題),我也沒(méi)有設(shè)法找到問(wèn)題。
AlarmManager在錯(cuò)誤的時(shí)間觸發(fā)警報(bào)
達(dá)令說(shuō)
2019-09-03 20:25:03