You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在flutter_local_notification中生成无限可用的通知ID?

Flutter闹钟应用通知ID生成方案

针对flutter_local_notifications触发通知必须传入唯一int类型ID的要求,结合闹钟应用用户可自由新增闹钟的场景,可参考以下几种成熟的ID生成方案:

方案1:数据库自增主键绑定(最推荐)

  • 本地存储闹钟数据时(可使用sqflite等本地数据库库),给闹钟表设置自增整型主键字段,该主键直接作为对应闹钟的通知ID
  • 优势:实现逻辑最简单,天然保证ID唯一,无需额外处理冲突问题;ID上限为2^31-1 = 2147483647,正常用户就算每天新增10个闹钟,完全用完所有ID需要近60万年,完全能满足所有使用需求

方案2:特征值组合生成

如果不想绑定数据库主键,可通过闹钟的特征参数组合生成ID:

  • 取闹钟的触发时间戳DateTime.millisecondsSinceEpoch的后28位,拼接闹钟重复周期的编码值,生成唯一ID
  • 生成后需提前和本地已存的闹钟ID做校验,若出现重复则追加1位随机偏移量即可

注意事项

  • 用户修改、删除闹钟时,必须先调用flutter_local_notifications的cancel(int id)方法取消对应ID的旧通知,避免无效通知残留
  • 若单个闹钟需要设置多个关联提醒(比如提前5分钟提醒、正点响铃、重复周提醒等),可给主闹钟ID增加固定偏移量生成子ID,比如主ID为10,提前提醒的ID为10 * 10 + 1,正点响铃ID为10 * 10 + 2,避免和其他闹钟的ID冲突

内容的提问来源于stack exchange,提问作者Shashwat Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 23:54:03