iOS 应用程序被杀死并重新启动显示我的最后一个 VC

Posted

技术标签:

【中文标题】iOS 应用程序被杀死并重新启动显示我的最后一个 VC【英文标题】:iOS app Killed and relaunched Showing my last VC 【发布时间】:2018-02-22 11:38:48 【问题描述】:

杀死并重新启动 ios 应用程序,如果我有视图控制器 A、B、C,最后可见的视图控制器是 C。所以现在当我重新启动应用程序时,我看到视图控制器 C 10 秒,然后显示启动画面。我怎样才能避免这种情况。

由于前 10 秒,用户无法在应用程序上执行任何事件。

【问题讨论】:

您的应用在重新打开之前是否完全关闭?你一直在使用 restoreIdentifiers 吗? 应用程序被手动终止并重新打开,我得到了这个问题。 restoreIdentifiers 仅在 UIPageViewController 中使用 听起来您的客户只看到最后一张快照图像;那只是静态图片,在您的应用启动时呈现,用户无法对该静态图片进行任何交互。 @holex 正是这个屏幕停止了交互 【参考方案1】:

我认为这是一个操作系统错误。但是如果你想避免这种情况,你可以在你的应用程序进入后台之前尝试添加一个闪屏图像视图。您需要将自定义叠加视图作为子视图添加到当前窗口。使用此方法实现此功能:applicationDidEnterBackground。您可以在此处找到有关此功能的更多信息:

Display a view or splash screen before applicationDidEnterBackground (to avoid active view screenshot)

【讨论】:

【参考方案2】:

要强制 iOS 使用其默认视图控制器或启动图像启动应用程序,您需要调用

UIApplication.shared.ignoreSnapshotOnNextApplicationLaunch()

实现状态保存的地方。 形成文档:Documentation

防止应用在下一个启动周期使用最近的快照图像。

【讨论】:

我应该在哪里添加这个? applicationWillResignActive 和 didFinishLaunchingWithOptions

以上是关于iOS 应用程序被杀死并重新启动显示我的最后一个 VC的主要内容,如果未能解决你的问题,请参考以下文章

iOS应用程序启动图像后杀死

即使在杀死并重新启动应用程序后,如何在本机 iOS 中下载音频文件?

杀死后 iOS 应用程序启动图像

在应用程序被杀死并重新启动后,Android 应用程序黑暗主题消失了

应用程序被杀死时Android后台服务正在重新启动

重新启动服务,在 debian postinst 脚本中被杀死。