在日更改时更新反应[本机]视图

时间:2015-12-23 07:29:12

标签: javascript ios reactjs settimeout react-native

我正在研究React Native组件,该组件应在白天更改时自行更新,即使用户未与视图进行交互也是如此。

setInterval是解决这个问题的唯一方法吗?如果我在setTimeout中调用viewDidLoad指定直到第二天的ms数,那么如果应用暂停,则间隔是否不准确?或者,我可以运行一个周期性的计时器,但是我需要给它一个短暂的间隔,以便在白天变化时没有明显的延迟 - 看起来非常低效。

我错过了什么吗?

2 个答案:

答案 0 :(得分:4)

我认为这更像是一个普遍的应用程序架构问题。最简单的答案是你应该以秒为单位获取当前时间(new Date().getTime()),确定第二天之前的秒数,并为该数字设置一个计时器。

但是,正如您所提到的,一旦应用程序被杀死,该计时器将不再准确。

您应该使用AppStateIOS来监听应用程序的后台和前景。发送到后台后,清除计时器。在被带到前台后,再次运行原始计算并生成一个新计时器。

不幸的是,Android上没有相同的功能。

答案 1 :(得分:0)

您可以使用 react-native-midnight,它订阅本机 API 并在一天因时区更改或超过午夜阈值而发生变化时触发事件侦听器。