React Native Video和计时器(已使用setInterval)都在前台工作,并且当应用程序在后台时计时器停止。但是视频仍在后台播放。
这意味着,当应用程序暂停时,所有setInterval的运行和(以及setTimeouts待处理)也会这样做。
headlessJs api仅适用于android在后台运行任务。
如果我使用headlessJs,不是因为本机运行计时器而使产品痛苦吗?
有一些所需的库,
react-native-background-job-使用headlessJs,仅在android中工作。
react-native-background-task-在android中使用headlessJs,而ios使用围绕react-native-background-fetch库的代理(仅支持单个任务,任务执行的确切时间无法预测)
如果我使用这些库,是否可以在后台服务中使用setInterval?
为什么只有音乐播放器在后台工作?
答案 0 :(得分:1)
我从react-native-background-timer库中找到了一个解决方案。
在iOS中,执行以下代码后,我们可以启动计时器或在后台进行任何本机操作。
即使我们在设备中使用其他应用程序,背景计时器也可以工作。 (例如:itunes,whatsup)
// Import the library
import BackgroundTimer from 'react-native-background-timer';
// Start the timer
BackgroundTimer.start();
// Start a timer that runs continuous after X milliseconds
const intervalId = BackgroundTimer.setInterval(() => {
// this will be executed every 200 ms
// even when app is the the background
console.log('tic');
}, 200);
在android中,
// Import the library
import BackgroundTimer from 'react-native-background-timer';
// Start a timer that runs continuous after X milliseconds
const intervalId = BackgroundTimer.setInterval(() => {
// this will be executed every 200 ms
// even when app is the the background
console.log('tic');
}, 200);
注意:使用该设备进行测试并且不信任模拟器