当前位置: 首页 > 面试题库 >

Android Firebase Cloud Messaging(FCM):可以对SubscribeToTopic进行自动重试吗?

锺离飞飙
2023-03-14
问题内容

要在androidhtml" target="_blank">客户端中订阅主题,我们应该调用:

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

我想知道如果在执行此指令时互联网连接不可用怎么办?

当互联网连接可用时,Google服务会自动重试订阅吗?还是我们应该由开发人员处理这种情况?


问题答案:

更新:

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

更新:

因此,根据@DiegoGiorgini在您以前的文章中的评论,似乎还有更多的subscribeToTopic:

subscribeToTopic会在后台继续重试,但它与您的应用生命周期(尚未与Google服务相关)相关。因此,如果您的应用程序被杀死,它将停止重试,直到再次打开该应用程序为止。(操作已存储,因此将在再次启动应用程序时恢复操作)

我之前尝试过的方式是在给定时间段之后,我将终止该应用程序,而没有再次将其启动。

所以我尝试检查一下。看起来,如果在发送订阅请求时设备处于脱机状态,它将重试一段时间(20-30秒左右?),然后如果仍未连接,它将停止。该请求可能达到了超时错误。但是,由于没有SubscribeToTopic()的返回值,因此您无法通过客户端应用程序确定此返回值。您可以根据需要发送功能请求。

但是,到目前为止,我认为您可以做的一种方法是在客户端应用程序中安装一个检查器,如果只有设备在线,您将在其中发送请求。

您还可以通过你的应用服务器检查它,因为我在你所提到以前的职位。



 类似资料:
  • 问题内容: 您如何自动化集成测试?我将JUnit用于其中一些测试。这是解决方案之一,还是完全错误?你有什么建议? 问题答案: JUnit可以工作。没有任何限制将其限制为仅单元测试。我们使用JUnit,Maven和CruiseControl来执行CI。 可能有一些特定于集成测试的工具,但我认为它们的用处取决于所集成的系统组件的类型。JUnit可以很好地用于非UI类型测试。

  • 问题内容: “ SQL语句缩进最佳实践”似乎是编写SQL块的公认格式。 是否有一个符合该标准的Vim缩进/语法文件,或者至少是紧密文件? 目前,我的Vim几乎保留了所有内容,仅缩进了某些关键字。 问题答案: “ SQLUtilities:SQL实用程序-格式化,生成- 列列表,数据库过程 ”具有SQL Utilities插件,该插件具有功能。与“如何在Vim中自动格式化和自动大写SQL ”是一个相

  • 我试图做一些关于FCM的firebase通知的定制。有可能做到吗?

  • 问题内容: 当我的测试用例失败时,尤其是在我们的构建服务器上,我想对屏幕进行拍照/截屏以帮助我调试以后发生的事情。我知道如何截屏,但是我希望在关闭浏览器之前,如果测试失败,则可以在JUnit中调用一种方法来调用我的方法。 不,我不想编辑我们成千上万的测试来添加try / catch。我想,也许可以,或者说成一个注释。我所有的测试都有一个公共的父类,但是我想不出什么办法可以解决这个问题。 有想法吗?

  • 我们可以使用页面对象执行滚动吗? 实际上,我需要根据元素滚动网页(向上/向下)。如何使用页面对象执行。 我使用Selenium web drive来启动浏览器,并使用Page对象来自动化web页面。 有什么建议吗???

  • 本文向大家介绍Dubbo可以对结果进行缓存吗?相关面试题,主要包含被问及Dubbo可以对结果进行缓存吗?时的应答技巧和注意事项,需要的朋友参考一下 可以,Dubbo 提供了声明式缓存,用于加速热门数据的访问速度,以减少用户加缓存的工作量。