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

Android下FirebaseMessagingService执行onCreate后立即销毁问题求助

问题原因

  • 多余的手动启动操作:FirebaseMessagingService 由 Firebase SDK 自动接管生命周期,不需要开发者手动调用startService()启动。你手动启动服务后,服务无待执行的任务,会被系统判定为空闲状态直接回收销毁,属于正常的资源回收逻辑。
  • 缺失正确的服务注册:你没有提供AndroidManifest.xml中的服务注册代码,大概率漏了FirebaseMessagingService要求的专属 intent-filter 配置,导致服务运行异常被销毁。
  • 高版本Android系统限制:如果你的运行设备系统版本为Android 8.0(API 26)及以上,后台启动的普通服务会被系统强制限制生命周期,无活跃任务时会被立刻销毁。

解决方案

  1. 直接删除你写的startService(new Intent(this, NotificationsService.class));手动启动代码,该操作完全多余。
  2. 在AndroidManifest.xml中补充正确的服务注册配置,示例如下:
<service
    android:name=".NotificationsService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>
  1. 验证功能正常:可以调用FirebaseMessaging.getInstance().getToken()主动触发token获取逻辑,或者给测试设备发送一条推送,此时NotificationsService的对应回调会正常触发,服务会在回调执行完成后才被系统回收。

内容的提问来源于stack exchange,提问作者Cyril The Dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:48:04