有史以来最奇怪的事情:核心位置即使应用程序不运行,也保持活跃

StackOverflow https://stackoverflow.com/questions/3190966

  •  02-10-2019
  •  | 
  •  

今天下午,我将iPhone 4带到Apple Store,看看他们是否可以帮助解决我遇到的问题。电池寿命根本没有应该是什么 - 电池电池坐在我的桌子上过夜50%。疯狂的。所以我怀疑我有一个烧伤单元。发生。没有大型。

我友好的天才在手机周围戳了一下,并指出位置服务指针在屏幕右上角点亮。他进入位置服务设置。他指出,以下应用程序具有“最近几个小时内获得的位置数据”标志点亮:天气频道,放映时间和我编写的两个应用程序,距离提交的几天也有几天的时间。

他关闭了每个应用程序的滑块,我们看到顶角位置服务指针关闭。重新打开我的任何一个应用程序的位置服务,都可以重新打开,而天气频道或放映时间并非如此。但是很明显,打开我的两个应用程序的位置服务可以启动设备的位置服务。我的糟糕电池寿命得到了解释,但这只是奥秘的开始。

这是事情。...我的两个应用都没有运行。他们甚至没有背景。他们离开了。我认为它们都在我的设备上的调试配置文件中构建,并且它们都使用核心位置。它们没有被暂停,它们只是平坦不跑步。然而,在位置服务控制面板中打开滑块,其中任何一个都开启了位置服务。

所以...这里发生了什么?这些应用程序均未为背景位置配置。而且...他们不在后台!而且由于我为他们关闭了位置服务,因此毫无疑问,我的电池使用情况下降了。

有帮助吗?

解决方案

该解决方案是在Apple开发人员论坛中的此线程中: https://devforums.apple.com/thread/58063?tstart=0

这两个应用程序的较早版本都调用了 [locationManager startMonitoringSignificantLocationChanges], ,从未打电话 stopMonitoring.... 。即使当前版本的应用程序没有调用,操作系统仍在应用程序中“注册”了监视请求(实际上,当我在我周围开车时,在后台重新启动它们!)。

我不知道的是,监视请求在启动过程中持续存在 - 以及重建!我认为,喜欢 -startUpdatingLocation, ,监视请求将随着过程而死,但事实并非如此。解决方案是从我的设备中删除应用程序并重新安装。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top