Android Firebase Cloud Messaging(FCM):将subscribeToTopic做自动重试



要在android客户端订阅主题,我们应该调用:

FirebaseMessaging.getInstance().subscribeToTopic("news");

我想知道在执行这个指令的时候如果网络连接不可用会发生什么?

当互联网连接可用时,谷歌服务是否会自动重试订阅,或者我们开发人员应该处理这种情况?

更新:

subscribeToTopic()现在返回一个Task<Void>,所以你可以附加一个OnCompleteListener()来检查它是否成功。


:

所以似乎有更多的订阅totopic,正如@DiegoGiorgini在你上一篇文章中的评论:

subscribeToTopic将保持后台重试,但它是绑定到您的应用程序的生命周期(不是谷歌服务,但)。因此,如果你的应用程序被杀死,它将停止重试,直到应用程序再次打开。(动作被存储,当应用程序再次启动时,它将被恢复)

我之前尝试的方式是,在给定的时间之后,我将杀死应用程序,并且不再打开它。


所以我试着检查一下。当发送订阅请求时,如果设备离线,它将重新尝试一段时间(20-30秒左右?),然后如果仍然没有连接,它将停止。请求可能遇到了超时错误。但是因为subscribeToTopic()没有返回值,所以你没有办法通过你的客户端来确定这个。如果你想的话,你可以发送一个特性请求,关于这个。

然而,截至目前,我认为你可以做的一种方法是在你的客户端应用程序中有一个检查器,如果只有设备在线,你才会发送请求。

你也可以通过你的应用服务器检查,正如我在你之前的帖子中提到的。

相关内容

  • 没有找到相关文章

最新更新