Android locationListener仅在服务中被请求时调用一次

Android locationListener仅在服务中被请求时调用一次,android,service,geolocation,Android,Service,Geolocation,我已经写了一个小应用程序,它有一个活动来控制和显示 数据,以及从GPS获取数据并将其发送到 活动。 这样做的原因是,我喜欢在活动结束后运行 退出 我在我的位置末尾做了一项工作 侦听器并重新定义了它 lm.removeUpdates(locationListener); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, iGPSMovement, locationListener); 但这并不好,现在它在我

我已经写了一个小应用程序,它有一个活动来控制和显示 数据,以及从GPS获取数据并将其发送到 活动。 这样做的原因是,我喜欢在活动结束后运行 退出

我在我的位置末尾做了一项工作 侦听器并重新定义了它

   lm.removeUpdates(locationListener); 
   lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, iGPSMovement, locationListener); 
但这并不好,现在它在我的HTC desire Z.上失败了

有人遇到过这种情况吗? 你的工作是什么

我写了一个不使用服务的小应用程序(一个活动),并且 仅在onCreate调用requestLocationChange时工作正常

请帮忙
Kim

好的,所以我试着重写一个超级简单的服务和活动,并使用broatcast接收器,效果很好。。
所以我转换了我的应用程序,但它仍然不工作。。。但是我后来发现,为了满足我的愿望,米的移动必须是0。。这是不是很奇怪?无论如何,这解决了我的问题

lm.RequestLocationUpdate(LocationManager.GPS\u提供程序,1000,0,locationListener)


这就是我最终得到的结果,无论我如何在服务和活动之间通信,都可以修复所有问题。

不确定这是否重要,但您必须将距离设置为0的原因是,这是装置必须移动的最小距离,以启动线程。因此,如果手机放在你的办公桌上,并且在程序开始时没有移动到离它所在位置至少X距离的地方,你就不会得到更新。如果将其设置为0,则无论移动的距离如何,都会强制程序以最短的时间间隔进行更新。我敢肯定,只有满足这两个最低条件,它才能起作用。也就是说,已经超过5秒了,你已经移动了10米以上。

你能发布你的服务代码吗?谢谢,我已经完成了一个全新的代码,我正在处理它,我相信是我的服务侦听器功能在玩我。。当我完成测试时,我会更新你。好的,所以我尝试重写一个超级简单的服务和活动,并使用broatcast接收器,这就像一个charme。所以我转换了我的应用程序,但它仍然不工作。。。但是我后来发现,为了满足我的愿望,米的移动必须是0。。这是不是很奇怪?无论如何,这解决了我的问题。。lm.RequestLocationUpdate(LocationManager.GPS_提供程序,1000,0,locationListener);是我最后得到的。。