https://facebook.github.io/react-native/releases/next/docs/headless-js-android.html#headless-js
我似乎找不到正确的方法
我正在运行反应原生 0.40
我实现了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);
}
我还有一个现有的应用程序类,它没有实现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"/>
请提供有关您的问题的其他信息,以防上述解决方案不起作用。