gpt4 book ai didi

ios - 当 iOS 从内存中删除应用程序时

转载 作者:行者123 更新时间:2023-11-29 10:36:17 25 4
gpt4 key购买 nike

这个问题以前可能有人问过,但我找不到答案。如果我打开一个应用程序并按下主页按钮,它会进入后台,如果我再次打开它,它会调用应用程序委托(delegate)方法,例如“applicationWillEnterForeground”。我需要多长时间才能进入后台以便应用程序调用 didFinishLaunchingWithOptions 并启动新应用程序?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

谢谢

最佳答案

从内存中删除您的应用程序(终止进程)需要考虑很多因素。

最简单的方法是重启设备。重启后所有应用程序都关闭。然而,带有 Voip 的应用程序会在重启后自动启动到后台。

第二个也是最常见的一个是内存压力。如果您的应用程序在后台并且系统内存不足,它会从消耗最多内存的应用程序开始杀死暂停的应用程序,并不断杀死它们,直到它回收足够的内存。

另一种非常常见的是看门狗。当您的应用程序的主线程完成任务的时间有限时,会有一些特定的场景。例如,当您的应用程序从后台返回或当用户按下主页按钮时,您有大约 10 秒的时间来释放主线程。 (请记住,在某些情况下,例如后台任务、音乐播放和其他情况,可以让您的应用在后台有更多的执行时间)。
但是,如果 runloop 在大约 10 分钟内没有返回,典型的应用程序将被终止。

另一种值得一提的情况是您的应用程序使用的 RAM 非常少。在一次 WWDC session 中提到,如果您的应用程序消耗的 RAM 不超过 16MB,它将被转储到闪存中,并在重新打开时恢复到内存中,而不是被杀死。因此,在这种情况下,您的应用程序可能永远不会被终止(我不确定是否会重启,但我假设在重启后转储的图像会被忽略,并且会发生正常的启动过程)。

下一个是用户的显式操作,即进入多任务 UI 并向上滑动应用程序,这将终止应用程序。

我认为这总结了最常见的情况。

当然你可能还想看看文档:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html#//apple_ref/doc/uid/TP40007072-CH2-SW1

关于ios - 当 iOS 从内存中删除应用程序时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26891315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com