applicationWillEnterForeground从未调用过

时间:2010-11-20 14:59:05

标签: iphone objective-c cocoa-touch

嘿那里,我正在模拟器中尝试多任务处理(我只有第二代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:]

3 个答案:

答案 0 :(得分:5)

最后我发现了我的问题! 由于我有一个通用的应用程序,我有一个Appdelegate_Shared,一个Appdelegate_iPhone和一个Appdelegate_iPad。 我在两个子类中有一个空的“applicationWillEnterForeground”实现,但没有调用super!

然后我想知道为什么Appdelegate_Shared中的方法永远不会被称为o.O

答案 1 :(得分:5)

在iOS 13中出现此问题后,我发现我正在等待applicationWillEnterForeground(_ application: UIApplication)而不是sceneWillEnterForeground(_ scene: UIScene)的调用。

有关更多信息,请阅读以下答案:

enter link description here

答案 2 :(得分:1)

我认为我不能更好地解释这个:

http://www.drobnik.com/touch/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/

我最终只是为我的第一个应用程序关闭了多任务处理。