处理IOS应用程序开发中的中断

时间:2012-10-09 05:27:02

标签: iphone objective-c ios cordova

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

1 个答案:

答案 0 :(得分: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
}