在Day Change上更新React[Native]视图

Update React [Native] View on Day Change

本文关键字:Native 视图 React 更新 Day Change      更新时间:2023-09-26

我正在开发一个React Native组件,即使用户没有与视图交互,该组件也应该在天气变化时更新自己。

setInterval是处理这个问题的唯一方法吗?如果我在viewDidLoad中调用setTimeout,指定到第二天的毫秒数,那么如果应用程序暂停,间隔不会不准确吗?或者,我可以运行一个周期性计时器,但我需要给它一个短的间隔,这样当一天发生变化时就不会有明显的延迟——这似乎效率很低。

我是不是错过了什么?

我认为这更像是一个通用的应用程序体系结构问题。最简单的答案是,您应该以秒为单位计算当前时间(new Date().getTime()),确定距离第二天还有多少秒,并为该数字设置计时器。

然而,正如你所提到的,一旦应用程序被杀死,计时器将不再准确。

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

不幸的是,到目前为止,Android上还没有类似的功能。

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