首页 > 解决方案 > React native - 在一天的特定时间调用函数

问题描述

我的计划是在我的应用程序中启用掉落(基本上是人们可以打开的箱子),我想每天在特定时间生成这个箱子,例如每 3 小时。我想通过每 3 小时调用一个函数来完成此操作,这将使箱子出现,所以我需要做的基本上就是在一天的特定时间调用一个函数。

我在这里面临的问题是这是我的第一个应用程序,我真的不知道如何在一天的特定时间调用这样的函数,更不知道如何在应用程序处于后台甚至关闭时调用此函数。

我读到有可能使应用程序在后台运行时执行某些操作,但是一旦终止它就不再工作了-另一方面,我们有诸如whatsapp或facebook之类的应用程序,或者基本上任何信使即使您也可以给您通知终止那些应用程序,所以我真的很困惑。即使应用程序被终止,我也想让胸部出现全部 3 个小时,并且不要让用户失望地回到应用程序并注意到没有下降,因为他终止了应用程序。

有谁知道这个方法或任何提示我如何完成它?

PS:我还想在某个时候包含博览会通知,就像旁注一样,以防这些信息会有所帮助。

标签: javascriptreact-nativeexpo

解决方案


所以基本上你想要每 3 小时有一个箱子。

在本机反应中,您可以在后台状态调用函数,但在应用程序处于终止状态时不能调用函数。

要获得处于终止状态的通知,您可以使用推送通知它们可以很好地退出,并且您可以在打开该通知时执行一些功能。

对于每 3 小时一次的箱子的逻辑,我建议您使用像redux-persist这样的持久状态管理 ,并将第一个箱子的创建时间存储在状态中,然后每当用户再次打开应用程序时,您都会获得这个存储的时间箱子创建并从当前时间中减去它,得到第一个箱子创建后经过的小时数,然后将其除以 3(3 小时),这基本上将为您提供您必须为用户创建的新箱子的数量。

在 useEffect() 或 componentDidMount() 的生命周期方法中执行此任务。

noOfNewChestToBeCreated=(previousChestCreationTimeDate-CurrentTimeDate)/3

在这里你可以找到如何在 js 中减去日期时间

除了redux-persit你也可以使用async-storage


推荐阅读