在 Firebase 文档中,当您的应用程序打开时订阅主题是安全的,就像在 MainActivity 的 onCreate 中一样。
主 Activity .java
FirebaseMessaging.getInstance().subscribeToTopic("announcement");
当应用程序处于后台(按下主页按钮)/前台时,您很可能会收到通知。
问题是当我关闭应用程序(应用程序被销毁)或我重新启动手机时,我的应用程序似乎没有收到来自 Firebase 控制台的通知(通过主题发送)。虽然我认为我需要在手机重启时实现广播接收器。
无论如何,我从扩展的 FirebaseMessagingService 的 onCreate 订阅了主题,但它总是调用 onDestroy。从调试看来,当从 FirebaseMessagingService 收到通知时,它会转到 onCreate -> onMessage -> onDestroy 以获得每个通知。
据我所知,即使应用程序被销毁,我的扩展 FirebaseMessagingService 也应该存在,因此它不应该每次都调用 onCreate。
Since a service should work even if the app is destroyed
所以我想知道我应该在我的 Android 代码中的什么地方放置我对主题的订阅,这样即使应用程序被销毁它仍然会收到通知之类的通知。
提前谢谢你。
最佳答案
FirebaseMessagingService 无需处于 Activity 状态,您的应用即可接收通知。
该服务仅用于处理传入消息或 token 请求。
如果服务停止,请不要担心。 Android 将在新通知到达时重新启动它。
您可以在应用的任何位置订阅主题。 订阅会一直保存,直到您取消订阅。
关于android - 何时正确订阅 firebase 中的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42414657/