2

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

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

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

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

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

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

谢谢。

用一个例子更新了问题:

如果我们进入设置应用程序(第一次) -> iTunes 和应用商店 -> 点击 AppleId: 行 -> 您将看到一个 alertView -> 将应用程序带到后台的 Push Home 按钮 -> 将应用程序带回向上。您将观察 Default.png for Settings 应用程序 < 1 秒,然后您将看到您之前打开的屏幕。

4

2 回答 2

9

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

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

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

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

于 2012-10-31T23:27:38.783 回答
1

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

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

于 2012-10-31T20:18:27.803 回答