Hi,
I am developing an android app which basically needs to pull data from REST API every one minute and run in the background even when in background, terminated and on reboot. Currently, i am using the managed workflow and expo-background-fetch and expo-task-manager. All is working fine when app is in the background, i am getting the log statements. However, when i terminate the app, i stop to get any notifications and on startup again i get all of the ones which have missed. What am i missing?
I am using the Expo Client on android to test the app.
I have given the Expo Client all permissions as per Xiaomi | Don’t kill my app!
That is my sample code.
import * as BackgroundFetch from 'expo-background-fetch';
import * as TaskManager from "expo-task-manager"
import { BACKGROUND_FETCH_PRICE_TASK } from './Constants'
TaskManager.defineTask(BACKGROUND_FETCH_PRICE_TASK, async () => {
const now = new Date();
console.log(`Got background fetch call at: ${now.toISOString()}`)
try {
return BackgroundFetch.Result.NewData;
} catch (error) {
return BackgroundFetch.Result.Failed;
}
});
export const initBackgroundTasks = async () => {
await BackgroundFetch.registerTaskAsync(BACKGROUND_FETCH_PRICE_TASK, {
minimumInterval: 60, //1 minute
stopOnTerminate: false,
startOnBoot: true
});
TaskManager.getRegisteredTasksAsync()
.then(tasks => {
console.log(`Registered tasks: ${JSON.stringify(tasks)}`)
})
}