LocationManager只给我一个更新

时间:2012-02-28 09:14:45

标签: android service android-service locationmanager locationlistener

我正在尝试做什么


Hello Guys,我正在尝试创建一个服务,每小时将一个Locationupdate发布到我的服务器。该代码似乎有效,当我启动服务时,它自动发布第一个locationupdate,之后没有任何反应。但奇怪的是,有时它有时候不会......

问题


那么我需要在我的代码中更改我的locationmanager每小时放置一个locationupdate。如果您有一个很棒的教程或一些代码示例,那就太棒了!

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

顺便说一下,你给它的时间大多是虚假的,设备只是用它作为提示,你可以期望频率远高于你要求的频率。

请记住,一小时后,您的应用程序很可能会被Android的进程管理器杀死,所以无论如何它都会死掉。在任何情况下,AlarmManager都是解决此问题的方法。