微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React-Native IOS:Background-Timer不在后台运行

如何解决React-Native IOS:Background-Timer不在后台运行

尝试启动背景计时器。 我想运行代码,该代码也将在后台针对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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。