嘿那里,我正在模拟器中尝试多任务处理(我只有第二代iPod和iPad),但我仍然遇到一些问题。我的测试方法如下:
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"Entering %s",__FUNCTION__);
if (enteredFromBackground) {
NSLog(@"Entering from Background");
enteredFromBackground = NO;
}
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"Entering %s",__FUNCTION__);
enteredFromBackground = YES;
}
不幸的是,我没有从applicationWillEnterForeground看到NSLog,这就是为什么我添加了这行来向我展示applicationDidBecomeActive中的内容。 我得到的只是
2010-11-20 15:58:12.796 iBeat[45997:207] Entering -[AppDelegate_Shared applicationDidEnterBackground:]
2010-11-20 15:58:18.160 iBeat[45997:207] Entering -[AppDelegate_Shared applicationDidBecomeActive:]
答案 0 :(得分:5)
最后我发现了我的问题! 由于我有一个通用的应用程序,我有一个Appdelegate_Shared,一个Appdelegate_iPhone和一个Appdelegate_iPad。 我在两个子类中有一个空的“applicationWillEnterForeground”实现,但没有调用super!
然后我想知道为什么Appdelegate_Shared中的方法永远不会被称为o.O
答案 1 :(得分:5)
在iOS 13中出现此问题后,我发现我正在等待applicationWillEnterForeground(_ application: UIApplication)
而不是sceneWillEnterForeground(_ scene: UIScene)
的调用。
有关更多信息,请阅读以下答案:
答案 2 :(得分:1)
我认为我不能更好地解释这个:
http://www.drobnik.com/touch/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/
我最终只是为我的第一个应用程序关闭了多任务处理。