gpt4 book ai didi

android - 如何使用特定的 request_code 取消特定的 pendingIntent?

转载 作者:搜寻专家 更新时间:2023-11-01 09:00:32 25 4
gpt4 key购买 nike

我想制作一个可以添加、查看和取消闹钟的应用。我为此设计了一个数据库。查看和创建新警报非常有效。

但问题是取消警报。所有警报都由相同的 pendingIntent 和不同的 request_code 设置。 request_code 取自数据库条目(即 ID 字段)。如果我使用 cancel(pendingIntent) 方法,它将取消所有警报。但我只想用特定的 request_code 取消特定的警报。这是我创建的警报代码:

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, 0);
Intent intent = new Intent(this, d1_on.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, user_id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

现在,当我点击取消按钮时,它会询问 user_id。然后它将从数据库中删除该行。没关系...但现在我想通过将 request_code 设置为 user_id 来停止该特定警报。

或者请向我解释如何通过alarmReceiver 类取消在alarmActivity 类中创建的pendingIntent

最佳答案

重新创建 pendingIntent 就像您最初创建它一样

PendingIntent pendingIntent = PendingIntent.getActivity(this, user_id, intent, PendingIntent.FLAG_UPDATE_CURRENT);

然后你可以取消它

am.cancel(pendingIntent);

关于android - 如何使用特定的 request_code 取消特定的 pendingIntent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368117/

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