世博背景关闭世博客户端应用后获取失败

时间:2020-09-01 19:46:20

标签: javascript reactjs react-native ecmascript-6 expo

我正在开发一个应用程序,当用户关闭或导航到另一个应用程序时,我正在运行某些后台方法。 当我打开我的实际应用程序时,backgroundFetch可以正常工作,但是当我关闭博览会客户应用程序时,它会停止工作。当用户关闭EXPO客户端应用程序时,我想运行一个特定的功能,我确实很努力,但是没有找到任何解决方案。有人可以帮我解决这个问题吗?

  const runBackgroundTask =async ()=> {
    const taskName='my_task';
    const interval=60

    TaskManager.defineTask(taskName, ()=>console.log('it working'));

    const status = await BackgroundFetch.getStatusAsync();
    switch (status) {
        case BackgroundFetch.Status.Restricted:
        case BackgroundFetch.Status.Denied:
            console.log("Background execution is disabled");
            return;

        default: {
            console.log("Background execution allowed");

            let tasks = await TaskManager.getRegisteredTasksAsync();
            if (tasks.find(f => f.taskName === taskName) == null) {
                console.log("Registering task");
                await BackgroundFetch.registerTaskAsync(taskName,{
                    minimumInterval: 60,
                    stopOnTerminate: false,
                    startOnBoot: true,
                });

                tasks = await TaskManager.getRegisteredTasksAsync();
                console.log("Registered tasks", tasks);
            } else {
                console.log(`Task ${taskName} already registered, skipping`);
                setInterval(() => {
                  console.log('I am calling')
                }, 500);
            }

            console.log("Setting interval to", interval);
            await BackgroundFetch.setMinimumIntervalAsync(interval);
        }
    }
  }

0 个答案:

没有答案