在后台将位置设置从'Always'更改为'when in use'不会继续位置跟踪



>如果用户更改其位置设置

从"总是"到"使用时"。

并且不会返回到应用程序。 有时我看到蓝色条,有时我看不到它。

如果未显示蓝色条,则我的应用可能会从内存中删除。

我在didChangeAuthorization方法中唯一做的是,如果它不是restricteddenied.notDetermined,那么我就调用startUpdatingLocation()

我知道我无法在应用程序在后台运行时startUpdatingLocation

但是当我这样做时,我不应该继续从"总是"更改为"使用时"吗?!这是我无法控制的行为吗?

经过多轮测试。我可以非常自信地说:

如果切换到"从不">,则操作系统将在10 秒或更短的时间内调用stopUpdatingLocation

因此,如果在你达到 10 秒之前切换到"使用时",那么你会看到蓝色条,你一切都很好。

如果您等待 10-20 秒,那么您将不再看到蓝色条,因为调用了stopUpdatingLocation。要再次开始跟踪,您必须将应用程序置于前台,然后它将再次开始更新您的位置。

在"始终"和"使用时"之间切换不应导致停止位置跟踪。很可能是因为我转到"从不"并停留了 10 秒以上,然后切换到"始终",然后切换到"使用时",我做了所有这些操作——没有打开应用程序并认为这是因为我从"始终"更改为"使用时"。所以这有点虚惊一场。

最新更新