gpt4 book ai didi

ios - 倒数计时器,在后台继续运行

转载 作者:行者123 更新时间:2023-12-04 18:34:55 24 4
gpt4 key购买 nike

我需要创建计时器,它将在后台状态下继续运行,并在应用程序进入前台状态后更新 UI。最合适的例子是 QuizClash 应用程序:enter image description here

我有以下两个想法:

  1. beginbackgroundTaskWithExpirationHandler

    • 创建第一个计时器(30 秒间隔,不可重复)
    • 创建第二个计时器(0.01 秒间隔,可重复)
    • 第一个计时器将触发 [self timeExiped] 方法,该方法将显示一些 UI 更新
    • 第二个计时器将触发上图中 ProgressBar 的更新
    • 将其全部包装在 beginbackgroundTaskWithExpirationHandler 方法中

    疑惑:如果主定时器在后台状态下超时,UI更新将不会显示(?)

  2. 状态恢复

    • 启动相同的计时器
    • 进入后台时,使用encode Restorable State With Coder: 保存当前时间戳
    • 使用 decode Restorable State With Coder: 来获取保存的时间戳和现在的时间戳之间的差异。
    • 使主计时器无效
    • 用(remains_seconds - time_difference_seconds)开始新的主计时器

    疑问:它是否是一个可行的选择,因为我没有使用它的经验,暂时无法尝试?

如果你有任何其他想法,或者可以在上面描述的 2 处指出我,如果你在莫斯科的话,我会放一杯啤酒 :)

最佳答案

定时器的用途是什么?

如果要触发 UI 更改,则尝试让它“在后台运行”是没有意义的,因为没有要更新的 UI。

无论采用何种方法,您几乎肯定会想要使用时间戳...当应用程序返回前台时,获取自上次时间戳以来耗时,根据需要更新您的 UI,并为前台事件重新启动计时器/更新。

关于ios - 倒数计时器,在后台继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42835217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com