Android фоновый сервис с Headless JS не работает - PullRequest
1 голос
/ 22 января 2020

Я реализовал до сих пор:

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?

...