问题描述
尝试启动背景计时器。 我想运行代码,该代码也将在后台针对iOS执行。
我使用 react-native-background-timer库。
但是当我最小化应用程序时,代码无法运行。 我在模拟器以及IOS设备(调试和发布)上运行该应用程序。 但是,当应用程序最小化时,代码不会运行。
我的代码:
var myTimer;
componentDidMount(): void {
const time = BackgroundTimer.setInterval(() => {
Geolocation.getCurrentPosition(
position => {
const location = JSON.stringify(position);
console.log(position.coords.latitude);
this.setState({
location,latitude: position.coords.latitude,longitude: position.coords.longitude
});
});
}
}
解决方法
根据库documentation,BackgroundTimer.setInterval仅用于android。如果需要跨平台要在Android和iOS上使用相同的代码,请使用runBackgroundTimer()和stopBackgroundTimer()
BackgroundTimer.runBackgroundTimer(() => {
//code that will be called every 3 seconds
},3000);
//rest of code will be performing for iOS on background too
BackgroundTimer.stopBackgroundTimer(); //after this call all code on background stop run.