android - FirebaseMessagingService 销毁太快
问题描述
我已将 FCM 添加到我的应用程序中,但遇到了奇怪的行为 - 的继承者FirebaseMessagingService
几乎立即被销毁。
这种行为在真实设备(Nexus 5、Android 6.0.1)上是可重现的,但在模拟器上,一切正常。服务按预期工作,几乎不会立即销毁。
作为一种解决方法,我尝试以继承者的onMessageReceived
方法启动我自己的服务。FirebaseMessagingService
这适用于应用程序处于前台的情况。在这种情况下,我的支持服务启动并运行。但是,如果应用程序被终止,我的支持服务不会启动,从 Android 的角度来看,这可能是预期的行为。
似乎唯一的解决方案是从FirebaseMessagingService.onMessageReceived()
应用程序启动时设置一些标志并启动一些检查器服务。其目的是每秒检查一次挂起的操作(例如)并执行实际工作。
这允许在推送同时出现在应用程序的前台和后台时覆盖这种情况。
有一个类似的问题 FirebaseMessagingService 扩展服务类在 android 7.1.1 设备中被破坏
我用implementation 'com.google.firebase:firebase-messaging:20.2.0'
任何帮助将不胜感激。
解决方案
有类似的问题。在我的情况下,禁用应用程序的电池优化很有帮助。
推荐阅读
- npm - Should I bother resolving npm peer dependencies myself?
- xcode - Can I start multiple iOS simulators simultaneously?
- python - 为什么用 fast_executemany=True 调用 cursor.executemany() 会导致分段错误?
- javascript - 重新加载父窗口 CRM Online 谷歌浏览器
- java - 用户定义对象序列化的 Junit 测试失败
- php - 自定义验证规则无法正常工作(规则通过但不应该)
- tableau-api - 在 tableau 中的多个列上使用一个日期过滤器
- angular - Angular - 在 formControl 上设置值而不重置错误
- javascript - 如何在 Bootstrap 4 模态表单中重置单选按钮和复选框?
- sql-server - 从 Prod 将 SQL Server 数据库恢复到 UAT