javascript - React native - 在一天的特定时间调用函数
问题描述
我的计划是在我的应用程序中启用掉落(基本上是人们可以打开的箱子),我想每天在特定时间生成这个箱子,例如每 3 小时。我想通过每 3 小时调用一个函数来完成此操作,这将使箱子出现,所以我需要做的基本上就是在一天的特定时间调用一个函数。
我在这里面临的问题是这是我的第一个应用程序,我真的不知道如何在一天的特定时间调用这样的函数,更不知道如何在应用程序处于后台甚至关闭时调用此函数。
我读到有可能使应用程序在后台运行时执行某些操作,但是一旦终止它就不再工作了-另一方面,我们有诸如whatsapp或facebook之类的应用程序,或者基本上任何信使即使您也可以给您通知终止那些应用程序,所以我真的很困惑。即使应用程序被终止,我也想让胸部出现全部 3 个小时,并且不要让用户失望地回到应用程序并注意到没有下降,因为他终止了应用程序。
有谁知道这个方法或任何提示我如何完成它?
PS:我还想在某个时候包含博览会通知,就像旁注一样,以防这些信息会有所帮助。
解决方案
所以基本上你想要每 3 小时有一个箱子。
在本机反应中,您可以在后台状态调用函数,但在应用程序处于终止状态时不能调用函数。
要获得处于终止状态的通知,您可以使用推送通知它们可以很好地退出,并且您可以在打开该通知时执行一些功能。
对于每 3 小时一次的箱子的逻辑,我建议您使用像redux-persist这样的持久状态管理 ,并将第一个箱子的创建时间存储在状态中,然后每当用户再次打开应用程序时,您都会获得这个存储的时间箱子创建并从当前时间中减去它,得到第一个箱子创建后经过的小时数,然后将其除以 3(3 小时),这基本上将为您提供您必须为用户创建的新箱子的数量。
在 useEffect() 或 componentDidMount() 的生命周期方法中执行此任务。
noOfNewChestToBeCreated=(previousChestCreationTimeDate-CurrentTimeDate)/3
在这里你可以找到如何在 js 中减去日期时间
除了redux-persit你也可以使用async-storage
推荐阅读
- python - SQLALCHEMY_DATABASE_URI 与 Azure Mysql
- scala - 将基于选项的链表转换为“列表”
- c++ - 为什么我要编译 2 个 C/++ 源文件而不是使用头文件?
- android-studio - Android Studio:如何使列表视图中的 EditText 保留更改的值?
- mysql - SQL获取Select中列的总和
- r - 使用 C 库中的 TclTK 返回整数
- python - PySimpleGUI 用于带有可选参数的脚本?
- c++ - 具有增加的所有者线程优先级的同步原语
- python-3.x - 如何使用 GPflow 进行预测 - 使用简单的数据输入运行 GPC?无法在不同数据上运行示例笔记本中的代码
- javascript - 如何在 Express 中将请求正文的数据从一条路由移动到另一条路由