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

Flutter中awesome_notification在应用关闭/杀死时不显示通知

解决Flutter应用被杀死后显示awesome_notification通知的方案

Android端处理

  • 实现前台服务(Foreground Service)
    Android 8.0+对后台进程限制严格,普通后台服务会被系统回收。你需要编写一个原生Android服务,将其设为前台服务(会在通知栏显示一个低优先级的持续提示),用来监听.NET Core推送的消息。在服务中接收到消息后,直接调用awesome_notification的原生API触发通知,无需依赖Flutter主进程。注意在AndroidManifest.xml中注册服务,并申请FOREGROUND_SERVICE权限。
  • 配置厂商自启动与后台权限
    国内小米、华为、OPPO等厂商有独立的后台管控机制,需要引导用户手动开启应用的自启动权限和后台活动权限,否则前台服务也可能被强制杀死。
  • 用WorkManager实现定时轮询(非长连接场景)
    如果你的推送基于HTTP短连接而非长连接,可以用Android的WorkManager创建周期性任务,定期请求.NET Core服务检查新通知。WorkManager不受应用进程状态影响,即使应用被杀死,也能在后台执行任务并触发通知。

iOS端处理

  • 集成UNUserNotificationServiceExtension
    iOS提供了独立于主应用的通知扩展组件,该组件不依赖主应用进程,只要推送带有content-available: 1,即使主应用被杀死,系统也会唤醒扩展处理消息。你可以在扩展中处理.NET Core的推送内容,调用系统通知API展示通知(也可与awesome_notification配合)。
  • 配置APNs推送Payload
    .NET Core服务向iOS设备推送时,必须在APS payload中包含"content-available": 1,同时确保推送是静默推送或包含通知内容。另外,需要在Xcode中开启项目的Remote notifications后台模式。
  • 确保通知权限完全授权
    引导用户开启应用的“允许通知”权限,同时开启“在锁定屏幕上显示”“通知中心显示”等选项,避免系统拦截通知。

通用注意事项

  • 检查awesome_notification原生配置
    Android端确认AndroidManifest.xml中注册了AwesomeNotificationsReceiver和相关服务;iOS端确认Info.plist中添加了通知权限描述,且AppDelegate中正确初始化了插件。
  • .NET Core推送适配多平台
    针对Android和iOS分别发送符合平台要求的推送格式:Android可直接通过HTTP请求设备本地服务(长连接场景)或调用系统通知API;iOS必须通过苹果APNs服务推送,无法直接发送到设备。

内容的提问来源于stack exchange,提问作者M.A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:52:11