Я пытаюсь обрабатывать телефонные звонки, ожидания и тому подобное. Я добавил функцию
- (void)applicationWillResignActive:(UIApplication *)application
и
- (void)applicationDidBecomeActive:(UIApplication *)application
на мой UIApplicationDelegate. При выходе из режима ожидания всегда вызывается applicationDidBecomeActive. Однако проблема «applicationWillResignActive» никогда не вызывается.
Мне было интересно, сталкивался ли кто-нибудь с этой проблемой и нашел ли кто-либо причину.
EDIT
Более подробно, я обнаружил, что цикл обновления моего движка, запускаемый из applicationDidFinishLaunching, заставлял меня пропустить сообщение. Я звоню
while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, .002, FALSE) == kCFRunLoopRunHandledSource);
для перехвата всех сообщений iphone, но, похоже, не перехватывает сообщение resignActive перед тем, как стать неактивным.
Попытка развить поток для моего цикла обновления приводит к странным ошибкам при сбое. У кого-нибудь есть предложения по быстрому исправлению?