【问题标题】:iOS 7+'s "Goodbye Snapshot"iOS 7+ 的“再见快照”
【发布时间】:2015-03-15 04:51:59
【问题描述】:

这是一个不寻常的,但我觉得有点“古怪”。

从 iOS 7 开始,当应用程序在后台运行时(按下 Home 按钮并退出活动状态),操作系统会获取应用程序的场景。

当应用重新启动时,该屏幕抓图会在应用重新启动时显示。只有半秒左右。

但是,对于我正在开发的应用程序,该屏幕截图具有误导性。设备已断开连接,所以显示的数据完全错误。

1) 我希望能够用 LaunchImage(我指定)替换屏幕抓图,如图所示;即使应用程序正在“重新唤醒”。

这是我能做到的吗?

2) 也许我有办法替换存储的屏幕抓图?

3)如果我能得到足够的通知(在截屏之前似乎没有消息),那么我可以用 LaunchImage 替换屏幕。

【问题讨论】:

标签: ios launching-application


【解决方案1】:

可以知道应用程序何时退出活动或后台。 UIApplicationDelegate 协议定义了 - (void)applicationWillResignActive:(UIApplication *)application 方法,该方法在应用程序从活动状态变为非活动状态之前被调用。

了解该方法的调用时间后,您可以在应用程序处于非活动状态之前做任何您想做的事情。因此,您可以在屏幕顶部扔一个视图,其中包含您想要的任何内容。这将成为多任务图像和启动图像。

参考以下博文进行更深入的分析:http://blog.adambell.ca/post/73339778302/dynamic-ios-multitasking

【讨论】:

  • 试过了。它不起作用。但是,可能是因为绘图程序没有触发。也许我需要弄清楚如何立即强制绘图。
  • 顺便说一句:感谢您的链接。它可能会给我我需要的东西。我需要花一些时间来处理它。
  • @MAGSHARE 你试过什么?我刚刚创建了一个单一视图项目,并且完全按照我的描述进行了操作,并且成功了。 Here 是应用程序委托的要点,这是我唯一需要修改的内容。
  • 嗯...我所做的是用隐藏的 UIImageView(LaunchImage)覆盖屏幕。我在启动期间将其作为叠加层,并在从设备显示第一张图像时将其隐藏。我正在取消隐藏它(这可能是一个问题 - 也许优先级太低?)。无论如何,我被引导到一个重复的问题,这可能对我有答案。非常感谢!
【解决方案2】:

我找不到任何明确调用 make 的内容,但您可能能够欺骗系统。当您调用completionHandler 时,协议方法[UIApplicationDelegate application:handleEventsForBackgroundURLSession:completionHandler:] 将拍摄您的用户界面的新快照。如果您注册UIApplicationWillEnterForegroundNotification,则会在转换开始前不久调用。您可以尝试启动一个您打算在处理通知时立即完成的NSURLSession,然后调用completionHandler。

由于它们将在不同的线程上,因此很可能无法确定时间,但值得一试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    相关资源
    最近更新 更多