Android 闹钟管理器在特定日期和时间不起作用

问题描述 投票:0回答:1

我正在尝试使用以下代码设置特定日期和时间的闹钟:

private lateinit var alarmManager: AlarmManager
  alarmManager = activity?.getSystemService(Context.ALARM_SERVICE) as AlarmManager
        val intent = Intent(context, AlarmReceiver::class.java)
        intent.putExtra("alarm", newAlarm)
        pendingIntent = PendingIntent.getBroadcast(
            context,
            2342,
            intent,
            PendingIntent.FLAG_IMMUTABLE
        )

        val myAlarmDate = Calendar.getInstance()
        myAlarmDate.timeInMillis = System.currentTimeMillis()
       // myAlarmDate[alarm?.year ?: 0, alarm?.month ?: 0, alarm?.hour ?: 0, alarm?.minute ?: 0, 0] =
            0
        myAlarmDate[2023, 9, 22, 10, 0] =0
        val alarmManager = requireContext().getSystemService(Context.ALARM_SERVICE) as AlarmManager

alarmManager[AlarmManager.RTC_WAKEUP,myAlarmDate.timeInMillis]=pendingIntent

但它不工作/触发任何警报

android alarmmanager
1个回答
0
投票

您需要使用一种可用的计划方法来设置闹钟。单独实例化不会激活它。例如:

...
val alarmManager = requireContext().getSystemService(Context.ALARM_SERVICE) as AlarmManager
// set the alarm
alarmManager.set(AlarmManager.RTC_WAKEUP, myAlarmDate.timeInMillis, pendingIntent);
...

根据您的使用案例,您可以使用

AlarmManager
中的几种可用方法之一来设置闹钟。

可以有一次性(例如

set()
)或重复警报(例如
setRepeating()
)。当谈到传送精度时,可以有精确的(例如
setExact()
)或不精确的警报(例如
set()
)。

要找出哪一个最适合您的需求,我建议您进一步阅读 AlarmManager

文档

© www.soinside.com 2019 - 2024. All rights reserved.