【发布时间】:2021-04-22 13:13:50
【问题描述】:
我的通知运行良好。这些通知由服务创建。 当我试图在用户没有点击它 3 分钟时关闭通知时。我在这里https://stackoverflow.com/a/23874764 尝试了 Karakuri 的解决方案,但什么也没发生。警报不起作用,广播接收器没有被调用。
服务类中的报警管理器:
notificationManager.notify(notificationId, n);
//set up alarm
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(context, MyReceiver.class); intent.setAction("com.example.example.action.CANCEL_NOTIFICATION");
intent.putExtra("notification_id", notificationId);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP,180000,pi);
广播接收器onReceive方法:
public void onReceive(Context context, Intent intent) {
// do something
final String action = intent.getAction();
Log.d("Reciver","onReceive lunched");
if ("com.example.example.action.CANCEL_NOTIFICATION".equals(action)) {
int id = intent.getIntExtra("notification_id", -1);
if (id != -1) {
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(id);
Log.d("Noti "+id," canceled ");
}}}
我之前没有和警报管理器打过交道。查了一下原因没找到,希望大家帮帮我
【问题讨论】:
标签: java android notifications broadcastreceiver alarmmanager