gpt4 book ai didi

iphone - 应用程序在后台时计划的 NSTimer?

转载 作者:IT王子 更新时间:2023-10-29 07:36:40 24 4
gpt4 key购买 nike

当应用程序在后台运行时,人们如何处理预定的 NSTimer?

假设我每小时在我的应用程序中更新一些内容。

updateTimer = [NSTimer scheduledTimerWithTimeInterval:60.0*60.0 
target:self
selector:@selector(updateStuff)
userInfo:nil
repeats:YES];

在后台时,这个计时器显然不会触发(?)。当用户返回应用程序时应该发生什么......?计时器是否仍在运行,时间相同?

如果用户在一个多小时后回来会发生什么。它会在错过的所有时间触发,还是会等到下一次更新时间?

我希望它做的是在应用程序进入前台后立即更新,如果它应该触发的日期是过去的话。这可能吗?

最佳答案

你不应该通过设置定时器来解决这个问题,因为你不允许在后台执行任何代码。想象一下,如果用户同时重启他的 iPhone 或遇到其他一些极端情况会发生什么。

使用 AppDelegate 的 applicationDidEnterBackground:applicationWillEnterForeground: 方法来获得您想要的行为。它更健壮,因为当您的应用程序因重启或内存压力而完全终止时,它也能正常工作。

您可以保存当您的应用程序进入后台时计时器下次触发的时间,并检查您是否应该在应用程序返回前台时采取行动。还可以在此方法中停止和启动计时器。当您的应用程序正在运行时,您可以使用计时器在正确的时刻触发更新。

关于iphone - 应用程序在后台时计划的 NSTimer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415870/

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