【问题标题】:How to get ReactContext in a Android Service?如何在 Android 服务中获取 ReactContext?
【发布时间】:2020-03-20 14:44:09
【问题描述】:

我想从 ReactNative 代码开始我的服务。 这是我用来桥接的模块。

public class HeartbeatModule extends ReactContextBaseJavaModule {
    public static final String REACT_CLASS = "Heartbeat";
    private static ReactApplicationContext reactContext;

    public HeartbeatModule(@Nonnull ReactApplicationContext reactContext) {
      super(reactContext);
      this.reactContext = reactContext;
    }

    @Nonnull
    @Override
    public String getName() {
      return REACT_CLASS;
    }

    @ReactMethod
     public void startService() {
     // Starting the heartbeat service

     this.reactContext.startService(new Intent(this.reactContext, HeartbeatService.class));
     }


    @ReactMethod
    public void stopService() {
        // Starting the heartbeat service

        this.reactContext.stopService(new Intent(this.reactContext, HeartbeatService.class));
    }
}

我的问题是如何在我的服务中访问这个 reactContext。 以及服务重启时如何维持。

【问题讨论】:

    标签: android react-native android-intent android-service android-context


    【解决方案1】:

    您可以通过 react code 启动服务。由 React Method 注解的 start Service 方法将在 react 代码中可用。代码中应该有 index js 文件,并尝试导入包 make call 以启动服务。

    【讨论】:

    • 服务无法访问 Recontext,而是您可以在服务中使用广播接收器并将数据从服务获取到 ReactContextBaseJavaModule。
    • 它不会工作。因为他是用JAVA代码问的,所以不能直接把ReactContext发给Service
    • @Manisha,这是解决问题的唯一方法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多