1

当应用程序在前台运行时,我使用 setTimeout 在 20 秒内成功执行 POST 请求,如下所示:

setTimeout(function() {
 /*POST request is done here*/ 
}, 20000);

但是,如果同时用户将应用程序置于后台,例如按下主页按钮,那么我的帖子将不会在 20 秒后被触发。不过,在 Android 上,我检查了是否超过 20 秒,然后我打开应用程序(使其位于前台),然后立即执行 post。(尚未在 ios 上进行测试以查看是否会发生同样的事情)。所以我有以下问题:

1) 同样的行为也发生在 IOS 端?

2)如果超时时间为 15 分钟而不是 20 秒,我是否应该期待完全相同的行为?

3)我该如何解决这个问题?一段时间后我需要联系一个端点,并且当应用程序在后台使用 setTimeout 时不能这样做。

在这种情况下,使用react-native-background-task之类的库没有帮助,因为我需要在 20 秒(或 10 分钟等)之后执行代码,而不是像 15 分钟+这样的未来某个时间

4

2 回答 2

0

我也遇到过同样的问题,我使用了react-native-background-timer,它非常适合 Android。

于 2018-11-20T13:57:42.217 回答
0

试试这个库,它会设置你想要设置的时间,但请记住 ios 不允许超过 30 秒的时间

https://github.com/ocetnik/react-native-background-timer

于 2018-11-20T13:57:31.763 回答