首页 > 解决方案 > 什么是处理“打盹”功能的好方法?

问题描述

到目前为止,我已经尝试了一些解决方案,但我不确定是否有“正确”的方法。我正在处理一个带有贪睡功能的待办事项列表。当我需要运行一个函数将其移动到不同的列表中时,每个任务都有一个“从贪睡中唤醒”的时间。

我尝试循环遍历每个任务并在viewWillAppear和/或viewDidAppear运行时移动它。这通常有效,但似乎偶尔会失火,并且在应用程序运行且用户未切换视图时不会发生。

我尝试使用该Timer()功能在实际特定时间移动项目,这仅在应用程序运行时有效。

我尝试使用performFetchWithCompletionHandler并每小时检查一次在后台移动项目。

还有什么我应该尝试使这个运行更顺利吗?它是所有这些的组合吗?如果是这种情况,我如何确保我不会同时移动两次?

标签: iosswiftrealm

解决方案


一般来说,问题似乎是如何确保某事在某个日期时间发生。

  1. 计算出目标日期时间是什么,并将其写在某个稳定的地方(文件、用户默认值等)以及随后发生的事情。

  2. 看时钟。每分钟触发一次的计时器可能就足够了。只需看看时钟,看看那个时间是否已经过去。如果有,请执行此操作并删除说明此事件需要在此日期时间发生的信息。

  3. 如果应用程序进入后台,请停止计时器。

  4. 当应用程序再次出现在前台时,请检查您的日期时间。

    • 如果时间已经过去,请执行此操作并删除说明此操作需要在此日期时间发生的信息。

    • 如果没有,请再次启动计时器并继续观察时钟。


推荐阅读