https://facebook.github.io/react-native/releases/next/docs/headless-js-android.html#headless-js
我似乎无法找到正确的方法
我正在运行React-native 0.40
答案 0 :(得分:2)
我实现了HeadlessJsTaskService
来执行一些反应本机代码。
对我来说,ReactExecutorService
只是默默地失败了,因为我在调用startService(new Intent(this, MyTaskService.class));
时没有提供任何额外内容。以下代码修复了:
@Override
@Nullable
protected HeadlessJsTaskConfig getTaskConfig(Intent intent) {
Bundle extras = intent.getExtras();
WritableMap data = extras != null ? Arguments.fromBundle(extras) : null;
return new HeadlessJsTaskConfig(
"FeatureExecutor",
data,
5000);
}
我还有一个现有的Application类,它没有实现ReactApplication
。我必须添加一些代码才能使HeadlessJsTaskService
工作:
private final ReactNativeHost reactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
// Insert your packages, e.g.
new MainReactPackage()
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return reactNativeHost;
}
您还必须将自定义服务添加到清单中。例如:
<service android:name=".MyTaskService"/>
如果上述解决方案无效,请提供一些有关您的问题的其他信息。