重复报警在特定时间准确着火无法正常工作

我想设置一个警报,在特定的时间每天上午8点,但警报管理员不准确的时间在2分钟的特定时间之后的某个时间,甚至更多。

我的代码

class AlarmReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val builder = NotificationCompat.Builder(context) .setSmallIcon(R.drawable.ic_stat_name) .setContentTitle("notification title") .setContentInfo("info") .setDefaults(NotificationCompat.DEFAULT_SOUND) val notifManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notifManager.notify(0, builder.build()) } companion object { fun startAlarmManager(context: Context, hour: Int, minute: Int = 0) { // set time for alarm manager val calendar = Calendar.getInstance() calendar.timeInMillis = System.currentTimeMillis() calendar.set(Calendar.HOUR_OF_DAY, hour) calendar.set(Calendar.MINUTE, minute) calendar.set(Calendar.SECOND, 0) calendar.set(Calendar.MILLISECOND, 0) if (calendar.timeInMillis < System.currentTimeMillis()) calendar.timeInMillis += 1000 * 60 * 60 * 24 // set up alarm manager val alarmReceiver = Intent(context, AlarmReceiver::class.java) val pendingIntent = PendingIntent.getBroadcast(context, 0, alarmReceiver, PendingIntent.FLAG_UPDATE_CURRENT) val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.timeInMillis, AlarmManager.INTERVAL_DAY, pendingIntent) context.toast("started") } fun stopAlarmManager(context: Context) { // set up alarm manager val alarmReceiver = Intent(context, AlarmReceiver::class.java) val pendingIntent = PendingIntent.getBroadcast(context, 0, alarmReceiver, 0) val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager alarmManager.cancel(pendingIntent) } } 

}

当我使用

 alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.timeInMillis,pendingIntent) 

它工作正常,通知发送具体时间还有一件事,我已经读过这个问题,但没有解决我的问题。

使用Alarmmanager在特定时间启动服务

报警管理器在特定的时间间隔内不工作

并且

调度重复警报