Я использую приложение expo с android и хочу запустить мое приложение в фоновом режиме c, фон задач должен запускать приложение каждые 1 минуту, я использую с TaskManager - Expo I Я новичок в экспо, реагирую на натив, и мне нужна помощь с этой проблемой, потому что это так сложно для меня.
Чего не хватает в моем коде или что нужно исправить там, чтобы он работал?
Моя идея состоит в том, чтобы просто автоматически запускать приложение в фоновом режиме.
Кроме того, дайте мне знать, если мне нужно что-то написать в приложении. json (только при необходимости)
Я также вызываю "registerFetchTask" в приложении. js:
import {registerFetchTask} из './helpers/registerFetchTask'
registerFetchTask ();
и это сам код:
import * as BackgroundFetch from 'expo-background-fetch';
import * as TaskManager from 'expo-task-manager';
const FETCH_TASKNAME = 'test_task'
const INTERVAL = 60
function test() {
console.log('function is running')
}
export async function registerFetchTask() {
TaskManager.defineTask(FETCH_TASKNAME, test);
const status = await BackgroundFetch.getStatusAsync();
switch (status) {
case BackgroundFetch.Status.Restricted:
case BackgroundFetch.Status.Denied:
console.log("Background execution is disabled");
return;
default: {
console.debug("Background execution allowed");
let tasks = await TaskManager.getRegisteredTasksAsync();
if (tasks.find(f => f.taskName === FETCH_TASKNAME) == null) {
console.log("Registering task");
await BackgroundFetch.registerTaskAsync(FETCH_TASKNAME);
tasks = await TaskManager.getRegisteredTasksAsync();
console.debug("Registered tasks", tasks);
} else {
console.log(`Task ${FETCH_TASKNAME} already registered, skipping`);
}
console.log("Setting interval to", INTERVAL);
await BackgroundFetch.setMinimumIntervalAsync(INTERVAL);
}
}
}