- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的应用程序与持续的后台位置更新一起工作。当然它有所有的权限和其他东西,比如
allowsBackgroundLocationUpdates = true
最初我想在后台使用 NSProcessInfoPowerStateDidChange
通知响应 LowPowerMode
更改。并在不调用 stopUpdatingLocation
的情况下禁用 allowsBackgroundLocationUpdates
停止更新位置。
但是收到通知和设置后才发现
allowsBackgroundLocationUpdates = false
在后台应用程序正在运行。
所以我走得更远,确定了 disabling allowsBackgroundLocationUpdates
甚至 in foreground 在它最初设置为 true
根本不起作用。应用程序继续在后台运行。
Apple 关于此事的文档
you use this property to enable and disable the behavior based on your app’s behavior
来自 CLLocationManager 类,allowsBackgroundLocationUpdates
属性的描述
With UIBackgroundModes set to include "location" in Info.plist, you must also set this property to YES at runtime whenever calling -startUpdatingLocation with the intent to continue in the background. Resetting this property to NO is equivalent to omitting "location" from the UIBackgroundModes value.
Simple project在 GitHub 上显示了我提到的行为。
那么问题来了,这是属性(property)的故意行为吗?
最佳答案
When the value of this property is false, apps receive location updates normally while running in either the foreground or background based on its current authorization. Updates stop only when the app is suspended, thereby preventing the app from being woken up to handle those events.Apple API Discussion.
我认为属性(property)讨论可以解决你的问题。
关于ios - 启用后禁用 allowsBackgroundLocationUpdates (CLLocationManager) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41704302/
我在主线程上调用 -[CLLocationManager requestWhenInUseAuthorization]。我已经设置了我的委托(delegate),并在 info.plist 中为 NS
这是我的代码,显示 map 上当前位置的警报和蓝点: MapName.h #import #import #import @interface MapName : UIViewControlle
我怎样才能不出错地执行以下操作? locationManager.delegate = self 行表示它不能 Cannot assign value of type '(APPLocationMan
我需要一直跟踪用户位置(但不要耗尽电池电量)。 我了解在应用程序终止后获取更新的唯一方法是使用 startMonitoringSignificantLocationChanges。 来自苹果关于 st
在我的标题中放置 CLLocationManager *locationManager; @property (nonatomic, retain) CLLocationManager *locati
我正在按照几个教程中的描述实现 CLLocationManager。 一切工作正常,直到 LocationManager 收到第二次更新。然后就会发生内存泄漏。 Instruments 告诉我,泄漏的
我正在尝试获取 iOS 设备(特别是我的 iPhone)上的当前位置。 我正在使用this苹果的例子。 调用 stopUpdatingLocations 之前的超时时间是 60 秒。 当我将desir
是否可以在后台“挂起” cllocationmanager? 我试图停止管理器,然后在特定时间在后台重新启动它。这可能吗?我尝试停止管理器并启动 nstimer,但它不起作用,因为 nstimer 不
如果我有一个选项卡栏应用程序,并计划在不同的选项卡中使用核心位置,是否有一个好的通用位置来放置用于分配/初始化 CLLocationManager 的代码,并在调用 startUpdatingLoca
我有一个 Mac 应用程序,想要使用核心位置,但是,当我没有使用 wifi 但使用以太网电缆连接时,核心位置 (CLLocationManager) 报告操作无法完成。 确切的错误消息是 The op
我正在开发一个跟踪应用程序,它需要在 map 上显示跟踪路径。当我开始更新位置并且安装后没有移动设备时,locationManagar报告错误的位置更新, 我正在根据报告的位置点绘制路线, 另外当用户
从iOS9开始,我们在CCLocationManager中遇到了一些奇怪的问题。 iOS 7-8没有问题。怪异的位置会导致应用程序出错。该应用程序在开车时使用,我们有大约50位TestFlight测试
我正在使用 CLLocationManager要访问用户位置,以下委托(delegate)方法返回不准确的坐标 -(void)locationManager:(CLLocationManager *)
我的应用程序中有一个映射功能。它属于选项卡栏 Controller 选项卡之一。 我遇到的问题是该应用程序在启动后立即要求位置权限。 在用户真正进入应用程序的 map 部分之前,我不想用与位置相关的问
我有一个 iOS 应用程序,它是一个选项卡式应用程序,带有 3 个 View Controller ,所有这些都需要知道手机何时进入特定地理区域。 我们监控的区域是在运行时通过 Web 界面提供的,因
当我尝试尝试 LBS 应用程序时,我遇到了问题。在模拟器中测试时,它似乎工作。然后,我在 iPhone 上试了一下。它没有按预期工作。 当我启动应用程序时,它显示了我的位置纬度、经度、距离等所有信息。
我有两个不同的类,其中之一是 LocationService,仅用于确定位置。问题是我不知道为什么它不更新坐标变量。 View Controller : import UIKit class View
我是 swift 新手 - 目前,当我第一次通过 override func awakeFromNib() 在 init 上调用 setupLocationManager() 时,我的当前位置仅在控制
我正在阅读 application:didFinishLaunchingWithOptions:方法并从 NSHipster 中发现以下代码: @import CoreLocation; @inter
位置管理器使用辅助 GPS 来确定用户的位置,使用来自 wifi 和蜂窝适配器的信息来提高返回位置的准确性和电池效率。但是,该文档没有明确说明为此使用 wifi/手机信号信息是否涉及任何可能消耗用户手
我是一名优秀的程序员,十分优秀!