Как запустить Headless JS на react native?

Всем привет, мне нужно запустить фоновые задачи на React native на Android смартфоны, решил попробовать реализовать на Headless JS, до этого пробовал библиотеку react-native-background-task, но как то не получилось.

Теперь работаю с Headless JS, но тоже не работает, вот пример кода.

index.js:
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
import SomeTaskName from './SomeTaskName'



AppRegistry.registerHeadlessTask("SomeTaskName", () =>
  SomeTaskName
);

AppRegistry.registerComponent(appName, () => App);


SomeTaskName.js:
module.exports = async (taskData) => {
    console.log('Beackgroud task')
    alert('test');
}


MyTaskService.java:
package com.exaple;

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),
          5000, // timeout for the task
          false // optional: defines whether or not  the task is allowed in foreground. Default is false
        );
    }
    return null;
  }
}


AndroidManifest.xml:
<service android:name="com.exaple.MyTaskService" />


MainActivity.java:
package com.exaple;
import android.content.Intent;
import android.os.Bundle;
import com.facebook.react.ReactActivity;

public class MainActivity extends ReactActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, MainActivity2.class);
        Intent service = new Intent(getApplicationContext(), MyTaskService.class);
        getApplicationContext().startService(service);
        startActivity(intent);
        finish();
    }


Я всё сделал как в документации, но нечего не работает, в чём может быть дело?
Или хотя бы подскажите библиотеку, которая поможет это реализовать, мне надо, чтобы приложение работало в закрытом состоянии.
  • Вопрос задан
  • 433 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы