gpt4 book ai didi

iOS 后台模式 : After running location updates in the background, 应用程序永远不会终止

转载 作者:行者123 更新时间:2023-12-02 08:41:43 24 4
gpt4 key购买 nike

我正在后台运行位置更新。一切正常:

  • 在重要位置,应用会在后台启动

- appDidFinishLaunching(options:) 按预期调用。

  • 我启动 LocationManager startUpdatingLocation()startMonitoringSignificantLocationChanges()

  • 位置信息已正确收集。

  • 一段时间后,我调用 stopUpdatingLocation()

  • 我的程序在这个阶段不需要做任何事情,也不会执行进一步的代码

此时程序保持空闲状态。 applicationWillTerminate 永远不会再被调用。这是预期的吗?我希望该应用程序能够再次关闭,因为不需要位置更新。

预期的行为是什么?应用程序应该关闭还是应该永远保持空闲状态?

一旦发生这种情况,如果用户打开应用程序或再次收到重要位置,则不会调用 appDidFinishLaunching(options:) ,而是调用 applicationDidBecomeActive .

是否有任何我可以遵循的支持预期行为的文档?

最佳答案

是的,这里的一切都在意料之中。 J.D. Wooder 删除了一个正确链接文档的答案:"Managing Your App's Life Cycle."通常,后台 iOS 应用程序不会被主动终止。它们仅在需要系统资源时被杀死。这是不可预测的,并且应用程序通常不会在发生这种情况时收到 applicationWillTerminate 消息(因为应用程序通常不会在此时运行,并且不会只是为了杀死它而将其唤醒)。您的应用应该处理冷启动 (appDidFinishLaunching) 和热启动 (applicationDidBecomeActive)。

从头开始重新启动应用程序的成本很高,因此如果没有资源压力,iOS 更愿意将最近使用的内容保留在内存中。不执行任何操作的应用程序非常便宜。留在身边。

请注意,iOS 13 在后台杀死应用程序方面变得更加激进,而且新手机上的大摄像头会导致内存压力,从而更快地杀死应用程序,因此不要太适应在后台运行背景好久了。但这也很正常。

关于iOS 后台模式 : After running location updates in the background, 应用程序永远不会终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521439/

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