我找不到用于在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');
};
当用户将应用程序发送到后台时,我需要运行一个函数,但是该函数从状态关联(调用)其他函数和数据。因此,在这种情况下,我应该在后台调用整个类吗?当前正在使用发布的代码,出现此错误,提示“无法解析模块SomeTaskName”。
确保someTaskName文件位于同一目录中。
和编辑
AppRegistry.registerHeadlessTask('SomeTaskName', () => require('./SomeTaskName'));
您能够使用无头js吗?我也尝试应用它,但是我的应用程序崩溃了。尽管我按照文档中的说明进行了所有操作]