如何在iOS应用程序的后台状态下使用NSRunLoop保持NSTimer的活力?

时间:2016-09-23 13:30:08

标签: ios objective-c nstimer

我正在使用以下代码在iOS应用程序的后台状态下使用NSRunLoop保持NSTimer,

- (void) applicationDidEnterBackground:(UIApplication *)application
{
    self.timer = [NSTimer scheduledTimerWithTimeInterval:40 target:self selector:@selector(fetchMessage:) userInfo:nil repeats:YES];

    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode];
    [[NSRunLoop currentRunLoop] run];
}

在后台状态下调试应用程序时使用上面的代码和xcode,NSTimer保持活动状态并在预定的时间间隔内执行特定的方法。在iOS 7后台执行时间限制超过3分钟的应用程序中,此NSTimer甚至可以工作。

但是,当应用程序从xcode部署到设备上并通过退出xcode开始在设备上使用应用程序时,我无法保持此NSTimer存活。我事件尝试过重启设备上的应用程序并通过点击主页按钮将其发送到后台,但NSTimer不在发布模式下执行。在xcode的调试模式下,它永远处于应用程序的后台状态。

我不想在苹果应用商店提交申请,我想在我自己的iPhone设备上使用此功能。有没有办法增加后台执行时间限制。

请帮助我,在发布模式下从xcode部署后,如何在iOS应用程序的后台状态下使用NSRunLoop保持NSTimer的活力?

提前致谢...

0 个答案:

没有答案