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