设备空闲时的地理位置

时间:2018-04-25 12:02:13

标签: android appcelerator appcelerator-titanium appcelerator-mobile appcelerator-alloy

iOS和Android上的appcelerator应用程序需要每5秒获取一次最新的地理位置并将该位置发送回服务器。

当应用程序打开并且屏幕打开时,它运行良好,但是当屏幕关闭时,两个平台上的地理定位对象似乎都不会经常更新 - 所以即使我每5分钟获得一次地理定位秒它不准确。

如何在电话屏幕关闭时定期更新地理位置?

3 个答案:

答案 0 :(得分:1)

您应该在前台Intent Service中请求地理位置,在其他情况下,它将无法在Android O上运行,准确度为5秒。

此外,您应该使用WakeLock来阻止睡眠模式。

答案 1 :(得分:0)

您是否真的想在设备关闭时每隔5秒获取一次该位置?这将很快耗尽电池。我认为每5到10分钟会更合适。甚至可能是过度的。

如果您真正需要的是定期更新定位,我建议采用以下两种解决方案:

注意:对于android,我们发现操作系统会定期终止我们的服务,虽然它总是安排它重新启动,但有时,它会安排很长时间(例如8小时)。我们最终使用AlarmService(https://github.com/benbahrenburg/benCoding.AlarmManager)定期启动我们的后台代码(例如每30分钟一次),后台代码会在大约25分钟后自行关闭。

此外,如果您关心在重新启动设备后重新启动服务,则应考虑使用BootReceiver(https://github.com/benbahrenburg/benCoding.Android.Tools/)重新启动AlarmService。

显然,Ben Bahrenburg的优秀模块很有道具!

答案 2 :(得分:0)

在7.2.0

中看起来有一个解决方案

https://developer.mozilla.org/en/DOM/element.addEventListener

还有第三方模块也希望解决这个问题

https://jira.appcelerator.org/browse/TIMOB-16066

我还没试过呢