我正在尝试做什么
Hello Guys,我正在尝试创建一个服务,每小时将一个Locationupdate发布到我的服务器。该代码似乎有效,当我启动服务时,它自动发布第一个locationupdate,之后没有任何反应。但奇怪的是,有时它有时候不会......
问题
那么我需要在我的代码中更改我的locationmanager每小时放置一个locationupdate。如果您有一个很棒的教程或一些代码示例,那就太棒了!
答案 0 :(得分:3)
您的设备可能已关闭CPU以节省电池电量,您的服务也不会收到更新。考虑使用警报进行更新,只需要一次位置更新(自API 9以来在位置管理器中有一种方法)或在服务中使用WakeLock(如果只需要一次更新就浪费电池电量每小时)。
有关警报管理器的更多信息,请参阅此处:http://developer.android.com/reference/android/app/AlarmManager.html
答案 1 :(得分:0)
同上之前的答案,你不应该为此使用requestLocationUpdates。您应该每小时使用一次AlarmManager,然后执行.requestSingleUpdate()。
顺便说一下,你给它的时间大多是虚假的,设备只是用它作为提示,你可以期望频率远高于你要求的频率。
请记住,一小时后,您的应用程序很可能会被Android的进程管理器杀死,所以无论如何它都会死掉。在任何情况下,AlarmManager都是解决此问题的方法。