Android TargetSDK34升级后,MESSAGING_EVENT对应foregroundServiceType选型咨询
解决方案:TargetSDK 34下Firebase Messaging服务的foregroundServiceType选择
直接结论:你需要将foregroundServiceType改为remoteMessaging,这是匹配Firebase消息推送场景的正确类型。
原因说明
Android 14(API 34)对前台服务的类型做了严格的场景绑定要求,不同的业务场景必须对应正确的foregroundServiceType,否则会导致服务启动失败或触发系统异常。
dataSync适用于本地与远程服务器之间的数据同步场景,比如备份、同步用户数据等;remoteMessaging则是专门为接收远程推送消息的服务设计的,完全匹配你当前处理com.google.firebase.MESSAGING_EVENT事件的场景。
修改后的代码
<service android:name=".Push.PushIntentService" android:exported="false" android:foregroundServiceType="remoteMessaging" > <!-- 修改此处 --> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
额外说明
如果你的PushIntentService同时需要处理消息推送和数据同步两类任务,可以通过竖线分隔指定多个类型,例如:
android:foregroundServiceType="remoteMessaging|dataSync"
但如果仅用于处理Firebase消息推送,单独使用remoteMessaging即可满足需求。
内容的提问来源于stack exchange,提问作者noccippuca
相关产品推荐
相关产品推荐

