【发布时间】:2015-09-14 17:26:59
【问题描述】:
我是 android 新手。我已经像这样使用 PendingIntent 设置通知
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
myIntent.putExtra("Msg", "Title");
myIntent.putExtra("Msgdetail", "Description of notification");
myIntent.putExtra("username","name");
//for uniquely broadcast request
Random random = new Random();
int m = random.nextInt(9999 - 1000) + 1000;
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, m, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, c.getTimeInMillis(),pendingIntent);
现在我想取消我使用上面的代码设置的所有通知(PendingIntent)。我在谷歌上搜索过,我知道我必须再次创建相同的意图,但是这两件事缺少 ID 号和时间。虽然我已经厌倦了这个但不幸的是没有工作。
private void removenotifications() {
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,PendingIntent.FLAG_ONE_SHOT, myIntent, Intent.FILL_IN_DATA);
AlarmManager alarmManager = (AlarmManager) MainActivity.this.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
}
任何建议表示赞赏。谢谢。
【问题讨论】:
-
这些是警报,而不是通知。通知是状态栏中显示的内容,必须使用 Notification.Builder 最好地创建。搜索警报而不是通知。
-
我已经在 NotificationService.java 中完成了所有这些操作
标签: android notifications alarmmanager android-pendingintent