Как правильно вызвать зарегистрированную задачу?

#react-native #expo

Вопрос:

Я использую expo версии 41.0.0, и я определил задачу и экспортировал зарегистрированную задачу. Вот как выглядит код

 import * as BackgroundFetch from "expo-background-fetch";
import * as TaskManager from "expo-task-manager";
import axios from 'axios';

const TASK_NAME = "BACKGROUND_TASK";

TaskManager.defineTask(TASK_NAME, () => {
    try {
        // fetch data here...
        const receivedNewData = "Simulated fetch "   Math.random()
        console.log("My task ", receivedNewData)
        return receivedNewData
            ? BackgroundFetch.Result.NewData
            : BackgroundFetch.Result.NoData

    } catch (err) {
        return BackgroundFetch.Result.Failed
    }
});

export const RegisterBackgroundTask = async () => {
    try {
        await BackgroundFetch.registerTaskAsync(TASK_NAME, {
            minimumInterval: 5, // seconds,
        });
        console.log("Task registered")
    } catch (err) {
        console.log("Task Register failed:", err)
    }
} 
 

и вот как я вызываю зарегистрированную задачу

 import { RegisterBackgroundTask } from '../../helper/background-task';

const SomeComponent = ({ ...props }) => {
   RegisterBackgroundTask();
  ...rest of the code  

  return (
     <View>
       other stuff here...
     </View>

  )
}
 

PS: Я запускаю приложение через Expo и использую IOS

Является ли это правильным способом вызова зарегистрированной задачи или ее можно вызвать внутри метода жизненного цикла, например useEffect ?