Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的应用程序具有闹钟铃声功能。不幸的是,有时会出现位延时报警(延时在不同时间有所不同)_Java_Android_Kotlin - Fatal编程技术网

Java 我的应用程序具有闹钟铃声功能。不幸的是,有时会出现位延时报警(延时在不同时间有所不同)

Java 我的应用程序具有闹钟铃声功能。不幸的是,有时会出现位延时报警(延时在不同时间有所不同),java,android,kotlin,Java,Android,Kotlin,有时警报会延迟响起,延迟从1分钟到5分钟不等。我已从传递给警报管理器的时间中删除秒值,但仍然存在时间延迟 when (selectedRepeat!!.id) { Repeat.Never.Id -> { alarmInterval = 0L } Repeat.Daily.Id -> { alarmInterval = AlarmManager.INTERVAL_DAY }

有时警报会延迟响起,延迟从1分钟到5分钟不等。我已从传递给警报管理器的时间中删除秒值,但仍然存在时间延迟

when (selectedRepeat!!.id) {
        Repeat.Never.Id -> {
            alarmInterval = 0L
        }
        Repeat.Daily.Id -> {
            alarmInterval = AlarmManager.INTERVAL_DAY
        }
        Repeat.Weekly.Id -> {
            alarmInterval = AlarmManager.INTERVAL_DAY * 7
        }
        Repeat.Monthly.Id -> {
            alarmInterval = Utils.getMonthDuration()
        }
        Repeat.HalfYearly.Id -> {
            alarmInterval = 15552000000L
        }
        Repeat.Annually.Id -> {
            val calendar = GregorianCalendar()
            alarmInterval = if (calendar.isLeapYear(Calendar.YEAR)) {
                AlarmManager.INTERVAL_DAY * 366
            } else {
                AlarmManager.INTERVAL_DAY * 365
            }
        }
        Repeat.CustomDays.Id -> {
            alarmInterval = AlarmManager.INTERVAL_DAY
        }
    }

    val operation =
        PendingIntent.getActivity(
            baseContext,
            requestCode,
            i,
            PendingIntent.FLAG_UPDATE_CURRENT
        )
    val alarmManager: AlarmManager = baseContext.getSystemService(ALARM_SERVICE) as AlarmManager



    val calendar = selectedDate
 alarmManager.setRepeating(
        AlarmManager.RTC_WAKEUP,
        alarmTime,
        alarmInterval,
        operation
    )

AlarmManager#setRepeating()
至少在KitKat之后就不再精确了。您应该查看.setExact或setExact的文档,因为上面已经提到需要空闲方法setRepeating不是exact您是否尝试过
setExact
?是的,它与set exact一起正常工作,但我必须重复这些警报,是否有任何选项添加与set exact一起重复