在Firebase文档中,当您的应用程序在MainActivity的onCreate中打开时,订阅主题是安全的。
MainActivity.java
MainActivity.java
FirebaseMessaging.getInstance().subscribeToTopic("announcement");
大多数情况下,当应用程序在后台(按了Home键)/前台时,您将收到通知。
问题是,当我关闭应用程序(应用程序被销毁)或重新启动手机时,我的应用程序似乎无法从Firebase控制台(通过Topic发送)接收通知。虽然我认为需要在手机重启时实现广播接收器。
无论如何,我已经在我的扩展FirebaseMessagingService的onCreate中订阅了Topic,但它总是调用onDestroy。从调试结果来看,当从FirebaseMessagingService接收到通知时,它会按顺序转到onCreate -> onMessage -> onDestroy处理每个通知。
据我所知,即使应用程序被销毁,我的扩展FirebaseMessagingService也应该保持存活状态,因此它不应每次都调用onCreate。
由于服务应该即使应用程序被销毁也能正常工作
因此,我想知道应该在我的Android代码的哪里放置我的主题订阅,以便即使应用程序被销毁,它仍将接收通知,例如公告。
提前感谢您。
unsubscribeToTopic()
方法之前,你才会一直保持订阅状态(请参见下面Diego的回答)。当你的应用程序被杀死时,无法接收到任何消息可能是由于其他原因引起的。 - AL.