watchkit - 忽略后台刷新时捕获
watchkit - capture when background refresh was ignored
在 apple dev documentation 中,这是关于安排后台刷新的说明:
Background refresh tasks only trigger when the app is in the background. If the app is still running in the foreground at the scheduled time, the system ignores the task.
我担心任务何时被忽略。我还没有找到任何关于如何识别任务何时被忽略的信息。有谁知道是否有任何方法可以识别后台任务何时被忽略?
我问是因为我想每 60 分钟触发一次重复的后台刷新。
如果应用程序打开,我想跳过那一刻的后台刷新并重新安排接下来的 60 分钟。每次执行后台应用程序刷新时,我都可以重新安排后台应用程序刷新,但如果忽略一次,则周期会中断。 (除非有更简单的方法来触发重复刷新,这对我也有帮助)。
感谢您的帮助!
我找不到解决方案,但事后看来我有一个解决方法(可能更好)。
每次我安排后台刷新时,我都会存储预期的 date/time 它应该发生。
然后,每当我关闭应用程序时,我都会检查存储的 date/time 是否是过去的。如果是,则意味着最后一次后台刷新被中断了(因为它没有运行因此没有更新存储的date/time)。
从那里,我再次重新安排后台刷新。
在 apple dev documentation 中,这是关于安排后台刷新的说明:
Background refresh tasks only trigger when the app is in the background. If the app is still running in the foreground at the scheduled time, the system ignores the task.
我担心任务何时被忽略。我还没有找到任何关于如何识别任务何时被忽略的信息。有谁知道是否有任何方法可以识别后台任务何时被忽略?
我问是因为我想每 60 分钟触发一次重复的后台刷新。 如果应用程序打开,我想跳过那一刻的后台刷新并重新安排接下来的 60 分钟。每次执行后台应用程序刷新时,我都可以重新安排后台应用程序刷新,但如果忽略一次,则周期会中断。 (除非有更简单的方法来触发重复刷新,这对我也有帮助)。
感谢您的帮助!
我找不到解决方案,但事后看来我有一个解决方法(可能更好)。
每次我安排后台刷新时,我都会存储预期的 date/time 它应该发生。
然后,每当我关闭应用程序时,我都会检查存储的 date/time 是否是过去的。如果是,则意味着最后一次后台刷新被中断了(因为它没有运行因此没有更新存储的date/time)。
从那里,我再次重新安排后台刷新。