LocationManger只给我一个更新



我要做的事情


大家好,我正在尝试创建一个服务,每小时向我的服务器发布一次Locationupdate。代码似乎有效,当我启动服务时,它会自动发布第一个位置更新,之后什么都没发生。但奇怪的是,有时它不会。。。

问题


那么,我需要在我的代码中更改什么呢?我的位置经理每小时都会更新一次位置。如果你有一个很棒的教程或一些代码示例,那就太棒了!

可能您的设备为了节省电池电量而关闭了CPU,您的服务将不会收到更新。考虑使用警报进行更新,只请求一次位置更新(自API 9以来,位置管理器中就有一种方法),或者在您的服务中使用WakeLock(如果您每小时只需要一次更新,则会浪费电池电量)。

有关报警管理器的更多信息,请参阅此处:http://developer.android.com/reference/android/app/AlarmManager.html

与前面的答案相同,您不应该为此使用requestLocationUpdates。您应该每小时使用一次AlarmManager,然后执行.requestSingleUpdate().

顺便说一句,你给出的时间大多是假的,设备只是把它当作一个提示,你可以预期频率会比你要求的高得多。

记住,一个小时后,你的应用程序极有可能被安卓的流程管理器杀死,所以它无论如何都会死。在任何情况下,AlarmManager都是解决此问题的解决方案。

最新更新