iOS多任务处理中的启动画面

时间:2012-10-29 18:33:12

标签: ios cocoa-touch ios5 ios4 uikit

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

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

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

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

在另一种情况下,如果我打开了UIAlertView,请将应用程序推送到后台并将其重新启动,应用程序会显示启动画面一秒钟。

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

感谢。

使用示例更新了问题:

如果我们转到设置应用程序(第一次) - > iTunes和应用程序商店 - >点击AppleId:row - >您将看到alertView - >推送主页按钮,将应用程序带到后台 - >把应用程序重新启动。您将观察到针对<的设置应用程序的Default.png 1秒钟之前,您将看到之前的屏幕。

2 个答案:

答案 0 :(得分:9)

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

中的png文件

当您重新启动应用时,SpringBoard会尝试读取该文件并将其显示出来,以便您感觉应用已快速唤醒。如果它无法读取该快照文件,则会显示Default.png

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

由于系统流程正在管理快照的显示,因此您的应用中绝对无法阻止Default.png短暂显示。

答案 1 :(得分:1)

如果应用程序从头开始,则仅显示Default.png。这意味着第一次,或者它自上次打开以来完全关闭。

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