AndroidAlarmManager只发送最后安排的通知
创始人
2024-10-06 06:31:04
0

这个问题可能是因为在使用AlarmManager设置通知时,没有给每个通知指定唯一的ID。因此,在调度多个通知时,AlarmManager只会保留最后一个通知并在其到期时发送。

为避免这种情况发生,在为每个通知设置唯一的ID时,可以使用getCurrentTimeMillis()方法生成唯一的ID。以下是一个示例:

private int generateNotificationId() {
    return (int) System.currentTimeMillis();
}

private void scheduleNotification(Notification notification, long delay) {
    Intent notificationIntent = new Intent(this, NotificationPublisher.class);
    notificationIntent.putExtra(NotificationPublisher.NOTIFICATION_ID, generateNotificationId());
    notificationIntent.putExtra(NotificationPublisher.NOTIFICATION, notification);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    long futureInMillis = SystemClock.elapsedRealtime() + delay;
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureInMillis, pendingIntent);
}

在该示例中,generateNotificationId()方法使用System.currentTimeMillis()生成唯一的通知ID。 createNotification()方法在调度通知时将此ID传递给“notificationIntent”。这样,即使用户在等待通知到期之前安排了多个通知,AlarmManager也能够识别每个通知并在其到期时发送。

相关内容

热门资讯

透视美元局"wepo... 透视美元局"wepoker辅助器有哪些功能"详细辅助德州论坛(一向存在有挂);人气非常高,ai更新快...
透视私人局"aapo... 1、透视私人局"aapoker脚本怎么用"详细辅助必赢教程(固有真的有挂);详细教程。2、aapok...
透视玄学"wepok... 透视玄学"wepoker辅助器官方"详细辅助2025新版教程(一直真的有挂)是一款可以让一直输的玩家...
透视辅助"wepok... 透视辅助"wepoker怎么发冤家牌"详细辅助AI教程(一向有挂);《WPK辅助透视》‌:支持手机实...
透视安卓版"impo... 透视安卓版"impoker辅助"详细辅助黑科技教程(真是是有挂)关于impoker辅助机制的,其中提...
透视透视"aapok... 透视透视"aapoker怎么控制牌"详细辅助力荐教程(都是是真的有挂);1分钟了解详细教程(微信 1...
辅助透视"sohoo... 1、辅助透视"sohoo poker辅助"详细辅助揭秘教程(最初是有挂)。2、sohoo poker...
透视了解"智星德州可... 透视了解"智星德州可以透视吗"详细辅助2025新版教程(一直是有挂)是一款可以让一直输的玩家,快速成...
透视能赢"wepok... 透视能赢"wepoker怎么买辅助"详细辅助揭秘攻略(切实是真的有挂);亲真的是有正版授权,小编(透...
透视了解"拱趴大菠萝... 透视了解"拱趴大菠萝十三水作弊"详细辅助必备教程(本然真的是有挂)1、很好的工具软件,可以解锁游戏的...