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

0x8*_*00d 2 cocoa-touch uikit ios4 ios ios5

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

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
     return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢.

通过示例更新了问题:

如果我们转到设置应用程序(第一次) - > iTunes和应用程序商店 - >点击AppleId:行 - >您将看到一个alertView - > Push Home按钮,它将应用程序带到后台 - >将应用程序带回起来.您将看到设置应用程序的Default.png <1秒,然后您将看到之前的屏幕.

0xc*_*ced 9

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

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

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

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

  • 奇怪的是,如果当前显示弹出窗口,则系统需要更长时间才能保存屏幕截图.同样在这种情况下,截屏是在没有alertView的情况下创建的.也许这就是它需要更长时间的原因.这是一个很大的不同.. (2认同)