当应用程序在前台运行时,我使用setTimeout在20秒内成功执行POST请求,如下所示:
setTimeout(function() {
/*POST request is done here*/
}, 20000);
不过,如果同时用户将应用程序放在后台,例如按下主页按钮,那么我的帖子在20秒后不会被解雇。不过,在安卓系统上,我检查了一下,如果20秒过去了,然后我打开应用程序(使其处于前台(,那么帖子会立即执行。(并没有在ios上进行测试,看看是否也发生了同样的事情(。所以我有以下问题:
1( IOS端也发生了同样的行为?
2( 如果超时时间是15分钟而不是20秒,我应该期待完全相同的行为吗?
3( 我该如何解决这个问题?一段时间后,我需要联系一个端点,当应用程序在后台使用setTimeout时,我无法做到这一点。
在这种情况下,使用像react原生后台任务这样的库没有帮助,因为我需要在20秒(或10分钟等(后执行代码,而不是在未来的某个时间(如15分钟+(
试试这个库,它可以设置你想要设置的时间,但请记住,ios不允许时间超过30秒
https://github.com/ocetnik/react-native-background-timer
我也遇到过类似的问题,我使用了react原生后台计时器,它非常适合Android。