据我所知,iOS应用程序生命周期隐藏有两个不同的阶段:
所以我对以下例子感到有些困惑:
- (void)applicationDidEnterBackground:(UIApplication *)application {
(void)(^expirationHandler)() = [^{
[application endBackgroundTask:bgTask];
self.bgTask = UIBackgroundTaskInvalid;
} copy];
self.bgTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:expirationHandler];
[NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(count)
userInfo:nil
repeats:YES];
expirationHandler();
}
- (void)count {
int i = 0;
while (i < 10000000) {
i++;
}
NSLog(@"%d", i);
}
P.S。我已经从记忆中复制了它,让我知道是否有错误,但问题与片段的正确性无关。
我使用iOS 9.3在iPhone 6+上进行了测试,并且指定的计时器持续触发,此外count方法执行代码(您可以通过i
值检查)。我是对的,应用程序必须在计时器安排后进入暂停状态吗?如果是这样,为什么count
能够执行代码?
提前致谢。
答案 0 :(得分:0)