gpt4 book ai didi

android - 如何注销与重复警报关联的 BroadcastReceiver?

转载 作者:行者123 更新时间:2023-11-30 03:09:01 38 4
gpt4 key购买 nike

我不清楚如何完成此操作,而且我在 Android 文档中迷路了。我会假设这是一个足够常见的场景,所以有人可以告诉我获取 BroadcastReceiver 的适当方法,以便我可以取消注册它(或者指出正确的方向以便我可以 self 教育)?

设置闹钟:

registerReceiver(alarmHandler, new IntentFilter("com.blah.alarm"));
PendingIntent pi = PendingIntent.getBroadcast(this, 0, new Intent("com.blah.alarm"), 0);
AlarmManager am = (AlarmManager) (this.getSystemService( Context.ALARM_SERVICE ));
am.setRepeating(
AlarmManager.RTC_WAKEUP, someCalendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);

解除闹钟:

PendingIntent pi = PendingIntent.getBroadcast(
this, 0, new Intent("com.blah.alarm", PendingIntent.FLAG_NO_CREATE);
if (pi != null) {
AlarmManager am = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
am.cancel(pi);
}
unregisterReceiver(????????); // how do I get alarmHandler ref ??

最佳答案

您需要将 alarmHandler 引用保存在某处的变量中,以便在需要调用 unregister() 时可以获取它。 Android 不提供您可以调用以获取对它的引用的任何方法。

关于android - 如何注销与重复警报关联的 BroadcastReceiver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310146/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com