Android下FirebaseMessagingService执行onCreate后立即销毁问题求助
问题原因
- 多余的手动启动操作:
FirebaseMessagingService由 Firebase SDK 自动接管生命周期,不需要开发者手动调用startService()启动。你手动启动服务后,服务无待执行的任务,会被系统判定为空闲状态直接回收销毁,属于正常的资源回收逻辑。 - 缺失正确的服务注册:你没有提供
AndroidManifest.xml中的服务注册代码,大概率漏了FirebaseMessagingService要求的专属 intent-filter 配置,导致服务运行异常被销毁。 - 高版本Android系统限制:如果你的运行设备系统版本为Android 8.0(API 26)及以上,后台启动的普通服务会被系统强制限制生命周期,无活跃任务时会被立刻销毁。
解决方案
- 直接删除你写的
startService(new Intent(this, NotificationsService.class));手动启动代码,该操作完全多余。 - 在
AndroidManifest.xml中补充正确的服务注册配置,示例如下:
<service android:name=".NotificationsService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
- 验证功能正常:可以调用
FirebaseMessaging.getInstance().getToken()主动触发token获取逻辑,或者给测试设备发送一条推送,此时NotificationsService的对应回调会正常触发,服务会在回调执行完成后才被系统回收。
内容的提问来源于stack exchange,提问作者Cyril The Dev
相关产品推荐
相关产品推荐

