【问题标题】:Implement unstoppable background service in react native在 react native 中实现不可阻挡的后台服务
【发布时间】:2020-02-04 17:28:18
【问题描述】:

我正在尝试在 react native 中运行不可停止的后台服务,该服务将通过 Socket.io 从服务器不断侦听消息。

为此,我找到了几个有几个问题的解决方案

  1. 使用 FCM

    方法的问题在于,首先我必须监听 FCM 事件,而不是连接到我的服务器并获取数据(消息 + 图像 + 视频)。而且我不想为我的应用使用 firebase,因为它很昂贵,也不想存储我的用户数据(主要是图像)并处理用户身份验证。

  2. 使用react-native-background-fetch

    这东西很不错,但它只允许每 5 分钟运行一次作业,如果你的服务被 android 杀死,那么你就走了

  3. 使用Headless JS

    说实话我看不懂它的文档

请告诉我该怎么办 我很困惑和惊讶没有适当的方法来处理这个 TIA 问候

【问题讨论】:

  • “不可阻挡的后台服务”是什么意思? Android 不允许这样的事情,以防止应用程序耗尽电池和数据。最好的情况是,Anrdoid 允许前台服务,这需要状态通知,但如果它需要内存,它仍然可以被 Android 杀死。
  • 知道了。那么像 facebook whatsapp snapchat 这样的应用程序是如何在不打开它的情况下收到通知的。 FCM 是如何工作的?
  • 那我应该怎么做才能监听来自服务器套接字的文本消息?
  • 这只是推送消息。 FCM 就是这样做的。其管道由设备服务(Android 和 iOS)处理。
  • 你能告诉我FCM到底是怎么做到的吗?

标签: android performance firebase react-native react-native-fcm


【解决方案1】:

也许你可以实现一个原生模块 java/objective-c https://facebook.github.io/react-native/docs/native-modules-android

并像这样运行后台线程 https://stackoverflow.com/a/31549559/5754159

【讨论】:

    【解决方案2】:

    为此,您需要学习 native-modules 和 react-native-bridge 以及一些 android 和 ios 服务的基础知识。 这是供您参考的链接。

    https://medium.com/reactbrasil/how-to-create-an-unstoppable-service-in-react-native-using-headless-js-93656b6fd5d1

    【讨论】:

      猜你喜欢
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多