gpt4 book ai didi

objective-c - 防止 iOS NSTimers 在后台被杀死的技术

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:59 27 4
gpt4 key购买 nike

obj-c 和 iOS 相对较新,但我创建了一个围绕 4 个简单的秒表式计时器构建的小应用程序。用户启动一个计时器,它开始计时,然后他们继续他们的生活。当他们打开应用程序时,他们可以看到它进行了多长时间。单独来看,这些计时器与 Apple Clock 应用程序中的计时器相同。

这在“大部分”时间都有效。我已经让计时器运行了好几天,启动、停止、重置、重新启动。但我注意到的是,如果该应用程序被推到多任务抽屉的下方太远,下次我打开该应用程序时,我的所有计时器都将为零,并且该应用程序将处于刚启动的状态。

对我来说,这似乎与操作系统认为不需要我的应用程序有关,杀死它的线程/进程/任何东西以释放内存。对于应用程序的目标受众,它将是一个经常检查的应用程序,因此这可能不会成为问题,但似乎应该有一些技术方法来确保我的秒表永远不会失败。我只是不确定在哪里可以找到这种功能。任何想法表示赞赏。

谢谢!

最佳答案

你做错了。

如果你构建一个带有 10 个计时器的秒表应用程序,你只需要一个 NSTimer。
这个计时器刷新显示。当应用程序处于后台时不需要此计时器。

NSTimers 有一个问题,他们可能会迟到,他们不应该被用来安排时间关键的事情(比如倒计时)。


启动计时器时存储当前的 NSDate 并在应用程序中显示差异。

将这些 NSDates 存储到 NSUserDefaults,它们甚至可以在设备重启后继续存在。

关于objective-c - 防止 iOS NSTimers 在后台被杀死的技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274926/

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