React-native:20秒后执行发布请求,即使应用在背景上运行

时间:2018-11-20 13:31:57

标签: react-native background-process android-background ios-background-mode

当应用在前台运行时,我使用setTimeout成功执行了POST请求,时间为20秒:

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

尽管,如果同时用户将应用程序放置在后台,例如通过按“主页”按钮,则20秒钟后我的帖子将不会被解雇。 但是在Android上,我检查是否经过20秒,然后打开应用程序(使其处于前台),然后立即执行发布。 (尚未在ios上进行测试,以查看是否发生了相同的事情)。所以我有以下问题:

1)IOS端也发生了相同的行为?

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

3)我该如何解决这个问题?我需要在一段时间后联系端点,而当应用程序处于setTimeout后台时无法这样做。

使用react-native-background-task之类的库在这种情况下无济于事,因为我需要在恰好20秒(或10分钟等)之后执行代码,而不是像15分钟后的时间那样执行代码

2 个答案:

答案 0 :(得分:0)

尝试使用该库,它可以设置您想要设置的时间,但是请记住,ios不允许将时间设置为超过30秒

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

答案 1 :(得分:0)

我遇到过类似的问题,我使用了react-native-background-timer,它在Android上运行得很好。