在后台运行时,将位置设置从“始终”更改为“在使用时”不会继续进行位置跟踪

时间:2018-10-01 22:25:17

标签: ios core-location ios-background-mode

如果用户更改了位置设置

从“始终”更改为“使用时”。

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

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

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

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

但是我不能继续将其从“始终”更改为“在使用时”吗?这是我无法控制的行为吗?

1 个答案:

答案 0 :(得分:1)

经过多轮测试。我很有信心地说:

如果您切换到从不,则操作系统将调用stopUpdatingLocation in 10 seconds or less.

因此,如果之前,您在10秒钟内切换到“使用时”,那么您会看到蓝色的条形,这一切都很好。

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

在“始终”和“使用中”之间切换永远不会导致停止位置跟踪。发生这种情况的可能可能是因为我去了Never并停留了10秒钟以上,然后切换到Always,然后在“使用时”完成了所有这些操作,而无需打开应用程序,并认为这是因为我从Always更改为“ when in采用'。因此,这是有点错误的警报。