0

我正在开发一个应用程序,该应用程序每 5 分钟通知一个 WebService 设备位置(例如):

因此,当应用程序离开前台执行并进入后台时,我必须午餐一个计时器,他 1 - 更新设备位置 2 - 将位置发送到 Web 服务

我该如何执行此操作?或者你知道我可以遵循的任何代码示例来实现这个设计吗?

感谢您的帮助 !

4

3 回答 3

1

看起来没有人给你一个可靠的答案,所以请允许我。

没有 iOS 认可的在后台运行 5 分钟(或任何分钟)计时器的方式(除非您的应用程序是 VOIP 或音乐)。您可以做的是在后台将您的应用注册为需要位置服务(编辑 info.plist 并添加一个键 Required Background Modes 然后添加一个值 App registers for location updates。这意味着您的 locationManager:didUpdateToLocation:fromLocation:方法和相应的区域监控/SLC 方法将在位置更改时触发,但计时器根本不起作用。

原因是计时器需要运行循环(执行代码的线程)并且必须在该线程上捎带,但是当应用程序处于后台时,即使从 LocationManager 执行代码,执行代码几乎总是在计时器响起之前完成。

希望这可以帮助!

于 2012-08-05T13:43:08.093 回答
0

你不能这样做(在 iOS 上)。

(除非您的应用请求用于导航应用的权限)

于 2012-08-01T20:55:26.293 回答
0

你好@阿拉丁加拉斯,

我开发了一个简单的应用程序,它支持 Xamarin 中 iOS 和 Android 的后台位置更新。

该应用程序每 2 秒推送一个新位置(如果您愿意,可以将其更改为 5 分钟)。

有一个功能我无法添加;这是为了在用户关闭应用程序(对于 iPhone)时保持服务。除此之外,只要应用程序打开,即使手机被锁定,服务也会继续运行。

如果有帮助,您可以查看该应用程序作为参考。

GitHub 回购

于 2021-01-19T05:44:40.873 回答