相关疑难解决方法(0)

如何在React Native中运行后台任务?

我在React Native中构建了一个小型iOS应用程序来进行位置跟踪,定期将lat/lng发送到用户选择的服务器.但是,这只适用于应用程序位于前台的情况.当用户在其他应用程序中时,如何在后台运行此任务?

javascript ios react-native

72
推荐指数
5
解决办法
5万
查看次数

React Native 后台计时器永不停止

我正在构建一个应用程序,它有一个计时器来在计时器处于活动状态时请求地理定位。对于计时器,我使用的是react-native-background-timer。这是一种工作,但不完全是我想要的。

用这段代码:

BackgroundTimer.runBackgroundTimer(() => { 
    console.log('tic');
},  
1000);
Run Code Online (Sandbox Code Playgroud)

当应用程序在后台时,计时器正在停止。而这段代码:

const intervalId = BackgroundTimer.setInterval(() => {
    console.log('tic');
}, 1000);
Run Code Online (Sandbox Code Playgroud)

它甚至在后台不断运行,但我无法阻止它。当我运行时BackgroundTimer.clearInterval(intervalId);,计时器仍在运行。即使当我离开屏幕并返回主屏幕时,计时器仍然滴答作响,永不停止。这并不理想,因为我需要计时器运行几分钟然后停止。

我将计时器设置为 1 秒以更新屏幕上剩余的时间。我正在考虑将计时器设置为 6 分钟一次,但是如何每秒更新状态?为这个制作 2 个计时器感觉是一种不好的做法,即使它会起作用。

因此,为了更清楚,用户假设从事某些活动,例如步行几分钟。因此,当用户接听电话或打开音乐应用程序切换音乐或其他内容时,我不能让计时器停止。计时器仍然需要运行,我需要通过地理位置测量步数和距离。即使用户打开另一个应用程序,忘记我的应用程序,它也需要完美地工作,并且它仍然会运行剩余的时间,然后在数据库中记录并停止。

javascript timer react-native

4
推荐指数
1
解决办法
5546
查看次数

标签 统计

javascript ×2

react-native ×2

ios ×1

timer ×1