【发布时间】:2011-12-29 21:34:38
【问题描述】:
我注意到在我开发的每个应用程序中都会发生一些事情。这通常不是问题,但在这个特定的应用程序中,如果我能“修复”它,如果它甚至是一个错误,那就太好了。
重现问题的步骤:
- 启动应用程序,启动屏幕显示大约3 秒后应用启动。
- 按下主页按钮,应用程序进入后台。
- 从后台返回应用程序(双击主屏幕并选择它),显示启动画面半秒左右,然后应用程序返回。
是否有可能摆脱从后台返回时弹出半秒钟的启动画面?对于这个特定的应用程序来说,这确实是一个问题。
【问题讨论】:
-
确保在应用的 plist 中将
Application does not run in background设置为 NO(原始密钥:UIApplicationExitsOnSuspend)。某些应用程序希望在用户将它们设置为背景时被“杀死”,因此它们使用此键。但是,要恢复您的应用,您必须允许它在后台运行(真正暂停,不必实际在后台运行)。 -
它并没有真正改变任何东西,从后台返回后仍然会出现一瞬间的飞溅......
-
您的代码是否通过
application:didFinshLaunchingWithOptions:两次(使用断点或NSLog 验证)?我不确定每次启动应用程序时如何在不使用UIApplicationExistsOnSuspend键的情况下显示初始屏幕(default.png)(当您将其作为背景时会杀死应用程序)。除非...该应用程序在退出时被意外杀死,例如applicationDidEnterBackground:或applicationWillResignActive:中的 SIGABRT。 -
所以你的意思是我应该将它设置为 YES ,而不是 NO 。 (所以它会立即被杀死),但这并不是一个真正的解决方案,因为我不希望应用程序在每次用户关闭它时都死掉......
-
UIApplicationExistsOnSuspend的默认值为 NO(意味着应用程序在后台运行时不会被终止)。因此,请确保缺少此键/值对或将其设置为 NO,以便您的应用程序在后台运行时不会被杀死。 - 很抱歉没有和没有的上限,只是想尽可能清楚。此外,当您在后台运行应用程序时,您的调试会话不应结束,因此您应该能够在applicationWillEnterForeground:上设置断点以验证您的会话没有结束(应用程序没有死)。
标签: iphone ios splash-screen visual-glitch