Я реализовал до сих пор:
MainApplication. java:
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this); // Remove this line if you don't want Flipper enabled
Intent service = new Intent(getApplicationContext(), MyTaskService.class);
getApplicationContext().startService(service);
}
MyTaskService. java:
package com.myApp;
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;
import com.facebook.react.bridge.WritableMap;
public class MyTaskService extends HeadlessJsTaskService {
@Override
protected @Nullable HeadlessJsTaskConfig getTaskConfig(Intent intent) {
Bundle extras = intent.getExtras();
WritableMap data = extras != null ? Arguments.fromBundle(extras) : null;
return new HeadlessJsTaskConfig(
"SomeTaskName", // Use the registered headless Task here
data,
5000);
}
}
AndroidManifest. xml:
<service android:name="com.myApp.MyTaskService" />
Index. js (React-Native code):
AppRegistry.registerHeadlessTask('SomeTaskName', () => SomeTaskName);
SomeTaskName. js (код RN):
module.exports = async (taskData) => {
alert('test');
console.log('Went to background');
}
Используя этот код, он запускается, но сразу закрывает приложение и не отображает никаких ошибок. , Есть идеи, почему это происходит, и почему я не могу вызвать alert и console.log?