即使我的应用程序在后台运行,我也希望在后台继续执行特定的任务。
这是我试过的代码。定时器在后台进入时只会触发一次。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSTimer * timer = [NSTimer timerWithTimeInterval:2.0
target:self
selector:@selector(timerTicked)
userInfo:nil
repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer
forMode:NSDefaultRunLoopMode];
}
- (void) timerTicked
{
NSLog(@"Timer method");
}
答案 0 :(得分:2)
您无法在后台使用计时器。它可能会工作很短的时间,但如果您没有注册的后台模式,您的应用程序将很快进入睡眠模式。
可用模式可能是:
答案 1 :(得分:-2)
- (void)applicationDidEnterBackground:(UIApplication *)application {
UIBackgroundTaskIdentifier bgTask = UIBackgroundTaskInvalid;
bgTask = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
}];
// NotificationTimer its timer
// myMethod1 call ur method
NotificationTimer = [NSTimer scheduledTimerWithTimeInterval: Interval
target: self
selector:@selector(myMethod1)
userInfo: nil repeats:YES];
}
我认为对你的帮助