应用程序处于后台或刚刚终止时监控区域

问题描述 投票:0回答:1

如果我使用only监控区域(CLMonitor或CLLocationManager)并且no运行startUpdatingLocation,那么在plist [UIBackgroundModes:位置更新]中并将allowsBackgroundLocationUpdates设置为true是否有帮助?我已经找了好几个小时了,但找不到明确的答案。在某些地方,我发现如果后台模式出现问题,它可能会有所帮助,而在其他地方,我发现它不相关。苹果官方文档对此也不是很清楚,而且非常混乱

另外,从ios17开始就有CLBackgroundActivitySession,我想知道我是否应该研究这个方向

在我们的应用程序中,我们注意到此案例存在一些问题,因此我正在寻找解决方案。我们不使用位置更新,并且将 allowedBackgroundLocationUpdates 设置为 false,但我们仅使用监控区域。目前,当用户将权限设置为“使用时”时,我们不会强制用户立即设置“始终”(当第一次显示弹出窗口时,没有“始终”选项,并且从 ios14.4 开始(类似这样)我们可以制作一个双弹出窗口)。 Ofc 我们从一开始就要求Always,但 IOS 不显示此选项。稍后它应该会自动显示此内容 编辑。我们不使用 startMonitoringSignificantLocationChanges ,pausesLocationUpdatesAutomatically 设置为 false,DesiredAccuracy 设置为“1”,DistanceFilter 为默认值(无)

Apple 文档

描述了终止的应用程序将重新启动的情况 -

ios geolocation gps maui
1个回答
0
投票
系统可以随时终止应用程序以释放内存或其他系统资源。仅当应用程序具有始终授权并且在终止时正在运行重大更改、访问或区域监控位置服务时,系统才会重新启动已终止的应用程序。

如果您正在使用区域监控并且您已请求

并收到
“始终”位置权限,您的应用程序将重新启动。 如果您只有临时的始终权限 - 即您已请求“始终”但用户尚未授予它,那么您的应用程序将不会重新启动。

另请注意,只有当您的应用程序因内存压力而被 iOS 终止时,才会发生此重新启动。如果用户将其滑开而终止,则不会重新启动。

© www.soinside.com 2019 - 2024. All rights reserved.