0

我想知道当应用程序处于前台时我们如何处理来电、短信等中断。我阅读了苹果文档,它说该应用程序将暂时进入非活动状态,即。'applicationWillResignActive' 函数将被调用。并且应该执行诸如停止计时器、定期任务和运行元数据查询之类的事情,当它回到活动状态时,必须再次禁用这些任务。当他们说计时器和周期性任务时,他们指的是什么样的任务。以及我们如何明智地建立这些编码。任何帮助将不胜感激。谢谢

4

1 回答 1

1

是的,当收到临时中断时,来自 UIApplication 的以下方法被调用 [Apple's documentation]

- (void)applicationWillResignActive:(UIApplication *)application

他们使用计时器和周期性任务引用的任务是使用计时器定期执行的这类任务。例如,您可以在后台运行一个计时器来更新视图的内容。然后,当应用程序将退出活动时,您应该停止该计时器。

例如,假设您正在运行一个计时器以每 10 秒执行一次任务:

// AppDelegate.m

// When application becomes active the timer is started
- (void)applicationDidBecomeActive:(UIApplication *)application {

    self.timer = [NSTimer scheduledTimerWithTimeInterval:10.0
                                                  target:self
                                                selector:@selector(scheduledTask:)
                                                userInfo:nil
                                                 repeats:YES];
}

// When the application will resign active the timer is stopped
- (void)applicationWillResignActive:(UIApplication *)application {

    [self.timer invalidate];
    self.timer = nil;
 }

计划任务将是:

- (void)scheduledTask:(NSTimer *)timer {

    // Up to you... for instance: web service call
}
于 2012-10-09T08:25:56.967 回答