我正在开发一个应用程序,该应用程序每 5 分钟通知一个 WebService 设备位置(例如):
因此,当应用程序离开前台执行并进入后台时,我必须午餐一个计时器,他 1 - 更新设备位置 2 - 将位置发送到 Web 服务
我该如何执行此操作?或者你知道我可以遵循的任何代码示例来实现这个设计吗?
感谢您的帮助 !
我正在开发一个应用程序,该应用程序每 5 分钟通知一个 WebService 设备位置(例如):
因此,当应用程序离开前台执行并进入后台时,我必须午餐一个计时器,他 1 - 更新设备位置 2 - 将位置发送到 Web 服务
我该如何执行此操作?或者你知道我可以遵循的任何代码示例来实现这个设计吗?
感谢您的帮助 !
看起来没有人给你一个可靠的答案,所以请允许我。
没有 iOS 认可的在后台运行 5 分钟(或任何分钟)计时器的方式(除非您的应用程序是 VOIP 或音乐)。您可以做的是在后台将您的应用注册为需要位置服务(编辑 info.plist 并添加一个键 Required Background Modes 然后添加一个值 App registers for location updates。这意味着您的 locationManager:didUpdateToLocation:fromLocation:方法和相应的区域监控/SLC 方法将在位置更改时触发,但计时器根本不起作用。
原因是计时器需要运行循环(执行代码的线程)并且必须在该线程上捎带,但是当应用程序处于后台时,即使从 LocationManager 执行代码,执行代码几乎总是在计时器响起之前完成。
希望这可以帮助!
你不能这样做(在 iOS 上)。
(除非您的应用请求用于导航应用的权限)
你好@阿拉丁加拉斯,
我开发了一个简单的应用程序,它支持 Xamarin 中 iOS 和 Android 的后台位置更新。
该应用程序每 2 秒推送一个新位置(如果您愿意,可以将其更改为 5 分钟)。
有一个功能我无法添加;这是为了在用户关闭应用程序(对于 iPhone)时保持服务。除此之外,只要应用程序打开,即使手机被锁定,服务也会继续运行。
如果有帮助,您可以查看该应用程序作为参考。