1

使用 iOS - 无需任何网络连接,

Alarmy App 能够在未来的某个时间运行代码——即使 App 完全关闭。

他们是怎么做到的?

为了进一步解释,这里是我对 Alarmy 如何发出无尽警报的想法:

  • Alarmy 可以在未来的任何时间设置闹钟。
  • 该应用程序已完全关闭
  • 当警报时刻发生时,会运行一些代码,使用calendarComponentSet = [.second]and设置本地通知repeat = true (这样通知每分钟无休止地重复)
  • 它进一步设置了 20 个提醒本地通知,彼此间隔 3 秒,再次使用calendarComponentSet = [.second]and repeat = true(这样一分钟就会有 20 多个通知填充 - 您可以看到当警报通知开始时,您会观察到每 3 秒计数一次NotificationCenter 上升。计数上升到 19 - 没有更高。之后重复开始,每 20 个通知重复一次。20 个包每分钟重复一次,您可以避免达到 64-max 通知限制)
  • 一切都没有互联网,也没有用户权限(通知权限除外)

现在的大问题:

在未来的某个特定时刻,您的应用程序中没有运行某些代码,您怎么会导致这些代码运行?

这个时刻被一些小代码使用,这些代码设置了 20 个重复通知。但是如何在完全封闭的应用程序中触发该代码?到目前为止,我只看到了通知横幅上的用户交互如何导致代码执行。但是如果用户不按任何横幅,它是如何工作的呢?

4

0 回答 0