【问题标题】:Splash Screen in iOS MultitaskingiOS 多任务处理中的启动画面
【发布时间】:2012-10-19 02:53:24
【问题描述】:

iOS 应用程序在什么情况下会显示启动画面,即默认图像(App Launch 除外)?

我强制视图控制器仅支持横向模式

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
     return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
}

如果用户在此视图中并将应用程序推到后台然后将其重新启动,则应用程序会显示启动屏幕

在另一种情况下,如果我打开了 UIAlertView,将应用程序推到后台并重新启动,应用程序会显示一秒钟的初始屏幕。

我们在 UIKit 文档中对此是否有任何解释,以及在什么情况下 iOS 中的多任务处理会在短时间内向用户显示启动画面。

谢谢。

用示例更新问题:

如果我们进入设置应用程序(第一次) -> iTunes 和应用商店 -> 点击 AppleId:行 -> 您将看到一个 alertView -> 按下主页按钮,它将应用程序带到后台 -> 带来应用程序备份。您将观察 Default.png for Settings 应用程序

【问题讨论】:

  • 当说“闪屏”时,您指的是Default.png 还是您为您的应用构建的东西?
  • 我指的是Default.png
  • 只有在应用尚未运行并已启动时才会显示。
  • @Till 我用一个例子更新了我的问题。你能看看吗。谢谢。

标签: ios cocoa-touch ios5 ios4 uikit


【解决方案1】:

只有在应用程序从头开始时才会显示 Default.png。这意味着第一次,或者自上次打开后完全关闭。

如果您只是运行一个标准应用程序,您只会在第一次启动时看到 Default.png,直到它从系统(因为内存太少)或通过多任务栏从用户关闭。

【讨论】:

  • 我已经用一个例子更新了我的问题。你能看看吗。谢谢,
  • 这很有趣 - 以前从未观察过!感谢您指出。很奇怪的行为。如果您制作屏幕截图,所有窗口都会被考虑在内——还有 alertViews。不仅是keyWindow。对不起,但我没有答案。
  • 在我阅读了 0xced 答案后,我只是在关闭设置应用程序并打开一个弹出窗口后等待了一段时间。比它有效。该应用程序在启动时正确显示(但没有弹出窗口)..
【解决方案2】:

系统(SpringBoard)负责管理您的应用快照。当您离开您的应用程序时,快照会以 png 文件的形式写入 Library/Caches/Snapshots/com.yourcompany.yourapp/UIApplicationAutomaticSnapshotDefault-Portrait@2x.png

当您重新启动您的应用程序时,SpringBoard 会尝试读取该文件并显示它,这样您就会觉得您的应用程序唤醒得非常快。如果它不能读取那个快照文件,那么它将显示Default.png

我注意到Default.png 仅在您快速退出并重新启动应用时才会显示。如果您在重新启动应用前等待一两秒,系统就有时间写入快照,并且不会显示 Default.png

由于系统进程正在管理快照的显示,因此您绝对无法在您的应用中执行任何操作来阻止 Default.png 短暂出现。

【讨论】:

  • 奇怪的是,如果当前显示一个弹出窗口,系统需要更长的时间来保存屏幕截图。同样在这种情况下,屏幕截图是在没有 alertView 的情况下创建的。也许这就是为什么需要更长的时间的原因。这是一个很大的不同..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多