【发布时间】:2017-02-23 11:34:55
【问题描述】:
在 Firebase 文档中,当您的应用打开时订阅主题是安全的,就像在 MainActivity 的 onCreate 中一样。
MainActivity.java
FirebaseMessaging.getInstance().subscribeToTopic("announcement");
当应用程序处于后台(按下主页按钮)/前台时,您很可能会收到通知。
问题是当我关闭应用程序(应用程序被破坏)或我重新启动手机时,我的应用程序似乎没有收到来自 Firebase 控制台的通知(通过主题发送)。虽然我认为我需要在手机重启时实现广播接收器。
无论如何,我从扩展 FirebaseMessagingService 的 onCreate 订阅了主题,但它总是调用 onDestroy。从调试看来,当从 FirebaseMessagingService 收到通知时,它会转到 onCreate -> onMessage -> onDestroy 以获取每个通知。
据我了解,即使应用程序被销毁,我的扩展 FirebaseMessagingService 也应该存在,因此它不应该每次都调用 onCreate。
因为即使应用程序被销毁,服务也应该工作
所以我想知道我应该将我的主题订阅放在我的 Android 代码中的哪个位置,这样即使应用程序被销毁,它仍然会收到通知等通知。
提前谢谢你。
【问题讨论】:
-
另请参阅上面链接的链接帖子(中右侧)。
-
感谢您提供信息,但实际上我在提问之前已经阅读了该链接。是的,在每个应用程序启动时订阅都很好,但是当应用程序被杀死时,即使我没有调用 unsubscribeToTopic,我也不再订阅了。所以问题是我应该把我的订阅放在哪里,这样即使应用程序被杀死,我仍然会收到通知。因为我假设 FirebaseMessagingService 应该处理这个问题。
-
"即使我没有调用 unsubscribeToTopic,当应用程序被杀死时,我也不再订阅问题了" 真的没有意义。在致电
unsubscribeToTopic()之前,您将保持订阅状态(请参阅下面 Diego 的回答)。当您的应用程序被终止时,您没有收到任何消息一定有其他原因。
标签: android firebase android-service firebase-cloud-messaging