从背景中返回后,防止显示“启animation面”

我注意到我开发的每个应用程序都发生了一些事情。 这通常不是一个问题,但在这个特定的应用程序,如果我能“修复”它,如果它甚至是一个bug,那将是非常好的。

重新产生问题的步骤:

  • 启动应用程序,闪屏显示约。 3秒钟,应用程序启动。
  • 按主页button,应用程序进入背景。
  • 将应用程序从后台移回(双击主屏幕并select它),显示半秒钟左右的飞溅,然后应用程序恢复。

是否有可能摆脱从背景的方式popup半秒的闪屏? 这真的是这个特定的应用程序的问题。

我知道这个问题被标记为“回答” – 但事实是,我的答案是不正确的,我想分享。

我最初得出的结论是,上面最准确的答案是来自QueyJoh – “这是由iOS处理的东西…简而言之:它已经不在您的手里了。

但是,在实验后,我设法find问题作为控制状态栏的我的info.plist文件中的条目。 具体来说,我有“UIStatusBarHidden”和“UIStatusBarStyle”的条目。

从我的plist文件中删除这些条目立即停止我的应用程序从离开我的应用程序,然后再次切换时显示启动屏幕。

问题解决了。

马修

那么,显然这个问题不是很聪明,开始:)这个“问题”只发生在模拟器。 在设备本身上进行debugging时,按预期工作。

没有伤害完成。 谢谢大家谁试图帮助! 🙂

根据我的经验,这是由iOS处理的东西(我正在经验,因为我没有看到任何文档)。 如果操作系统可以快速恢复应用程序状态,则会在状态恢复时显示其先前状态的屏幕截图。

但是,如果某些事情会延迟进程,例如应用程序未正确处于后台(例如在快速任务切换期间),或者其他可预测的操作会延迟启动,则将返回到启animation面(而不是截图),以缓解用户体验。

简短的回答:这是你的手中。

你的代码显示你的启animation面应该在didFinishLaunchingWithOptions方法的appdelegate中。 如果是这样的话,它只会出现在你的应用程序实际启动时,而不是从后台返回。

使用这样的东西(我知道它使用旧的animation代码,但我相信你可以更新它块如果你需要)…

  splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, 320, 460)]; splashView.image = [UIImage imageNamed:@"Default.png"]; [myWindow addSubview:splashView]; [myWindow bringSubviewToFront:splashView]; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.5]; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)]; splashView.alpha = 0.0; [UIView commitAnimations]; 

然后创build一个名为startupAnimationDone的方法…

  • (void)startupAnimationDone:(NSString *)animationID完成:(NSNumber *)完成上下文:(void *)context {

    [splashView removeFromSuperview];

    [splashView发布]; }

我也有这个问题,现在我已经解决了它。原因是你在applicationDidEnterBackground中做了太多的事情,尽量减less。