Приложение не приостанавливается - PullRequest
0 голосов
/ 02 мая 2011

Я наблюдаю странное поведение. Я выполняю этот метод:

- (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 голосов
/ 03 мая 2011

Все, что работает в текущем / главном цикле выполнения, может завершиться.Но операционная система оставляет за собой право уничтожать что-либо слишком долго.

Если вы выполняете этот метод в фоновом потоке, он сразу же приостанавливается при нажатии кнопки Home .

Попробуйте:

[self performSelectorInBackground:@selector(aLongRunningMethod:) withObject:@"Running in background"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...