从后台运行应用程序时重新启动应用程序时出现闪屏问题

Posted

技术标签:

【中文标题】从后台运行应用程序时重新启动应用程序时出现闪屏问题【英文标题】:Relaunching the app with splash screen issue when running app from background 【发布时间】:2013-05-27 13:12:48 【问题描述】:

我制作了一个通用应用程序。我的应用中有 3 个视图。

应用中有启动画面。

我遇到 1 个问题,即当我通过从第一个视图按主页按钮进入后台并从后台返回时,应用程序会以启动画面重新启动。

但是当我从第二个视图按主页按钮进入后台并从后台返回时,应用程序会以与我离开时相同的屏幕启动。

逐步产生;

启动应用程序,启动屏幕显示大约3 秒后应用启动。 按下主页按钮,应用程序进入后台。 从后台恢复应用程序

在设备中运行时,它给出的崩溃日志为 ;

InstanceNotExists

Terminating app due to uncaught exception 'InstanceNotExists', reason: 'Attempted to access instance before initializaion. Please call takeOff: first.'

我想从一开始就停止整个应用程序的重新启动,而不是从最后的恢复状态。

我该怎么做?

谢谢。

【问题讨论】:

AFAIK 这是 ios 处理的行为,它不会重新启动应用程序。通过在视图控制器生命周期方法中添加调试点来检查。如果它正在重新启动应用程序,则意味着您的应用程序在从 view1 进入后台时被杀死。在这种情况下,您会看到任何崩溃日志吗? @Amar- 感谢您的回复。不,没有任何崩溃日志。它只是从头开始重新启动整个应用程序。 这是发生在设备还是模拟器中? @Amar- 它在设备中。 @Amar-no 我没有设置任何这样的键。并且还尝试使用没有值的键,但没有解决问题 【参考方案1】:

1) 您是否检查过 Debugging on Device ?

它将在设备上完美运行。问题与模拟器有关。尝试在设备本身上进行调试,它肯定会按预期工作。

2) 检查您的info.plist 文件。如果您发现 "UIStatusBarHidden""UIStatusBarStyle" 的任何条目,则只需删除它们即可。

通过: Prevent Splash Screen from showing after returning from background

【讨论】:

@Rohan : 检查添加的链接。 “UIStatusBarHidden”和“UIStatusBarStyle”没有任何条目 @Rohan:你通过那个链接了吗?如果您从中得到什么,请尝试阅读该链接上的评论和答案。 谢谢。我已经浏览了那个链接,它已经解决了我的问题【参考方案2】:

如果您添加了启动画面,那么您可以在用户默认值中设置一个值。布尔值。在第一次运行时,让它是的。然后检查该值以决定是否显示启动画面。在 appdelegate.m

 if(![[NSUserDefaults standardUserDefaults] boolForKey:@"splash"])
    
        [[NSUserDefaults standardUserDefaults] setObject:NO forKey:@"splash"];
    
 if(    [NSUserDefaults standardUserDefaults]boolForKey:@"splash" == NO)

  //launch splash screen

【讨论】:

感谢您的回复。其实不仅仅是闪屏的问题。但整个应用程序从一开始就重新启动。即整个应用程序重新启动而不是从上一个状态(屏幕)恢复

以上是关于从后台运行应用程序时重新启动应用程序时出现闪屏问题的主要内容,如果未能解决你的问题,请参考以下文章

启动Zookeper时出现闪退现象

android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?

流星白屏代替闪屏

从后台被杀死的应用程序中恢复 - 重新启动时调用哪些方法?

即使设备在本机反应中重新启动,如何运行后台任务?

应用程序崩溃后更改手机语言并从后台重新启动