我正在使用NSTimer每隔15秒检查一次服务器的最新数据。 当应用程序转到后台时,我将在以下应用程序委托方法中停止计时器
- (void)applicationWillResignActive:(UIApplication *)application
当应用程序恢复活动状态时,我正在激活计时器并再次激活
- (void)applicationWillEnterForeground:(UIApplication *)application
此功能正常。 但是当我离开iPhone时,它会在一段时间后锁定。 当我解锁时,功能无法正常继续。计时器未运行。
我做错了什么?
我不希望计时器在后台运行。这就是为什么在进入后台之前,我正在禁用计时器,当我到达前台时,我想重新启动计时器。
答案 0 :(得分:1)
我认为除了applicationWillEnterForeground之外,您可能还需要一个额外的委托方法。我认为当用户解锁手机时,您的应用已经处于前台,因此无法进入。但我不确定委托方法是什么,也许applicationDidBecomeActive
答案 1 :(得分:0)
这就是Apple background processing的工作原理......
你可以创建一个后台任务,让NSTimer在后台工作但是时间有限,你不能让它总是在后台工作。