我想制作一款可以添加,观看和播放的应用取消警报。我为此设计了一个数据库。查看和创建新警报非常有效。
但问题是取消警报。所有警报都由具有不同pendingIntent
的{{1}}设置。 request_code
取自数据库条目(即ID字段)。如果我使用request_code
方法,它将取消所有警报。但我只想取消具体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
设置为user_id的情况下停止该特定警报。
或者,请向我解释如何通过request_code
课程取消pendingIntent
课程中创建的alarmActivity
。
答案 0 :(得分:3)
按照您最初创建的方式重新创建pendingIntent
PendingIntent pendingIntent = PendingIntent.getActivity(this, user_id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
然后你可以用
取消它am.cancel(pendingIntent);