如何取消 android 中的特定警报
How to cancel specific Alarm in android
在我的应用中,用户可以为同一部电影设置多个闹钟,例如 "On release date"、"A week before release"、"A month before release",现在我无法取消特定的闹钟,我知道如何使用电影 ID 取消警报,但如何使用电影 ID 和类型取消警报。我将两者连接在一起并将其作为 id 传递给我的未决意图吗?
代码:
public void cancelAlarm(Context context, _Alarm alarm) {
//Log.d(TAG, "{cancelAlarm}");
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, (int) alarm.getGameId(), intent, 0);
alarmManager.cancel(alarmIntent);
}
闹钟class有电影的id和闹钟的类型
do I concatenate both together and pass it as the id to my pending
intent?
这似乎合乎逻辑。
您还可以使用以下方式了解您的 PendingIntent 是否存在。
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, requestCode,
intent, PendingIntent.FLAG_NO_CREATE);
if (broadcast != null) {
alarmManager.cancel(alarmIntent );
}
在我的应用中,用户可以为同一部电影设置多个闹钟,例如 "On release date"、"A week before release"、"A month before release",现在我无法取消特定的闹钟,我知道如何使用电影 ID 取消警报,但如何使用电影 ID 和类型取消警报。我将两者连接在一起并将其作为 id 传递给我的未决意图吗?
代码:
public void cancelAlarm(Context context, _Alarm alarm) {
//Log.d(TAG, "{cancelAlarm}");
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, (int) alarm.getGameId(), intent, 0);
alarmManager.cancel(alarmIntent);
}
闹钟class有电影的id和闹钟的类型
do I concatenate both together and pass it as the id to my pending intent?
这似乎合乎逻辑。
您还可以使用以下方式了解您的 PendingIntent 是否存在。
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, requestCode,
intent, PendingIntent.FLAG_NO_CREATE);
if (broadcast != null) {
alarmManager.cancel(alarmIntent );
}