在开发的过程中,定时执行代码很常用,但是有个问题是,只要手机APP切到后台运行代码就停止执行了。最近在开发一款音乐播放器APP,想实现定时“停止播放”功能,就需要用到后台也可以定时执行代码的情况。
最常见的定时器写法开始定时器
timer = setInterval(function() {
//执行代码
}, 1000);
结束定时器
clearInterval(timer);
这样的写法,实测如果APP后台运行了,计时器就会停止工作了。显然无法实现APP后台后定时停止播放功能。
实现后台定时器GITHUB:
https://github.com/ocetnik/react-native-background-timer
安装组件React Native >= 0.60安装方法如下,其他版本的请参考组件官网的说明。
npm install react-native-background-timer --save
npx pod-install
使用方法
import BackgroundTimer from 'react-native-background-timer';
BackgroundTimer.runBackgroundTimer(() => {
//代码将每3秒执行一次
},
3000);
//其余的代码也将在后台为iOS执行
BackgroundTimer.stopBackgroundTimer(); //在此调用之后,所有后台代码停止运行。
教程结束。
参考:
https://github.com/ocetnik/react-native-background-timer