当应用程序在前台运行时,我使用 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 分钟+这样的未来某个时间