申请未被暂停

时间:2011-05-02 14:46:22

标签: xcode ios

我正在观察一种奇怪的行为。我正在执行这个方法:

- (void) aLongRunningMethod: (NSString*) input {
    for (int i = 0; i < 100; ++i) {
        //Sleep for 1 second
        [NSThread sleepForTimeInterval: 1];
        NSLog(@"Progress: %d", i);
    }
}

在iOS模拟器中,我点击主页按钮。我希望线程立即被暂停。但是,这不会发生。该方法继续进行。我很确定这不是设计的行为。这是模拟器中的缺陷还是我误解了应用程序的状态转换。

1 个答案:

答案 0 :(得分:0)

在当前/主要的runloop上运行的任何东西都有机会完成。但是操作系统保留了杀死任何东西的权利。

如果您在后台线程上执行该方法,当您按主页按钮时,它将立即暂停。

试一试:

[self performSelectorInBackground:@selector(aLongRunningMethod:) withObject:@"Running in background"];
相关问题