java - 我可以使用 Headless JS 调用类中的函数吗? React-Native 安卓

标签 java android react-native background-process headless

我找不到任何在 Android 的 React-Native 中实现 Headless JS 的正确文档。

目前我已经实现了这些:

AndroidManifest.xml:

<service android:name="com.axcesscarlock.MyTaskService" />

MainApplication.java

import android.os.Bundle;
import android.content.Intent;
import com.facebook.react.HeadlessJsTaskService;

我创建了一个java类:

package com.locationlistener.service;
import android.content.Intent;
import android.os.Bundle;
import com.facebook.react.HeadlessJsTaskService;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.jstasks.HeadlessJsTaskConfig;
import javax.annotation.Nullable;

public class MyTaskService extends HeadlessJsTaskService {

  @Override
  protected @Nullable HeadlessJsTaskConfig getTaskConfig(Intent intent) {
    Bundle extras = intent.getExtras();
    if (extras != null) {
      return new HeadlessJsTaskConfig(
          "SomeTaskName",
          Arguments.fromBundle(extras),
          10000, // timeout for the task
          false // optional: defines whether or not  the task is allowed in foreground. Default is false
        );
    }
    return null;
  }
}

JavaScript 文件中的代码:

AppRegistry.registerHeadlessTask('SomeTaskName', () => require('SomeTaskName'));

module.exports = async (taskData) => {
    console.log('Hello from the background');
};

当用户将应用程序发送到后台时,我需要运行一个函数,但该函数关联(调用)状态中的其他函数和数据。那么,在这种情况下,我应该在后台调用整个类(class)吗? 当前使用发布的代码,我遇到此错误,提示“无法解析模块 SomeTaskName”。

最佳答案

确保 someTaskName 文件位于同一目录中。

并编辑

AppRegistry.registerHeadlessTask('SomeTaskName', () => require('./SomeTaskName'));
<小时/>

你能使用headless js吗?我也尝试应用它,但我的应用程序崩溃了。尽管我按照文档中的描述做了所有事情

关于java - 我可以使用 Headless JS 调用类中的函数吗? React-Native 安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59841769/

相关文章:

android - 错误 : Unable to resolve dependency for ':react-native-maps@debug/compileClasspath' : Could not resolve androidx. appcompat :appcompat:1. 0.0

java - 获取非空对象数组

java - 用 Tomcat 取代 Weblogic?

android - Flex Air For Android 中的透明背景?

android - 如何在拉动中仅加载新项目以刷新自定义 ListView ?

javascript - react native : How to set <TextInput/>'s height and width to <View/> container?

java - 在实时数据库中添加数据但添加了错误的子项

java - 新 Timber 版本 4.1.2 的 Stetho-Timber 库问题

Android 在 Google Play 中更新应用程序

javascript - 在不关闭 native 键盘的情况下切换到下一个文本输入字段