You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何取消Android中使用setAlarmClock()方法设置的闹钟

取消setAlarmClock()设置闹钟的方法

取消该类型闹钟只需要构造和设置闹钟时完全相同配置的PendingIntent,调用AlarmManager的cancel()方法即可,代码示例如下:

// 构造和设置闹钟时完全一致的Intent和PendingIntent
val cancelIntent = Intent(applicationContext, AlarmReceiver::class.java)
// requestCode、flag参数必须和你设置闹钟时传入的参数完全相同
val cancelPi = PendingIntent.getBroadcast(applicationContext, 0, cancelIntent, 0)

val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
// 传入相同的PendingIntent即可取消对应的闹钟
alarmManager.cancel(cancelPi)

注意事项

  • 系统通过PendingIntent的匹配规则定位要取消的闹钟,必须保证构造PendingIntent时的requestCode、Intent的组件/Action/Category等参数、PendingIntent的flag都和设置闹钟时的参数完全一致,否则无法匹配到目标闹钟
  • Android 12(API 31)及以上系统强制要求PendingIntent必须明确指定FLAG_IMMUTABLE(不可修改PendingIntent内容,绝大多数场景用这个即可)或者FLAG_MUTABLE(需要动态修改Intent内容时使用),不能传入0作为flag,设置和取消时使用的flag要保持一致
  • 如果你设置了多个不同requestCode的闹钟,取消时需要对应每个闹钟的requestCode分别构造PendingIntent调用cancel
  • 调用cancel()成功后,setAlarmClock()触发的系统状态栏闹钟标识会自动移除,不需要额外调用其他接口处理

内容的提问来源于stack exchange,提问作者quer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:24:07