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

时间:2011-06-22 08:25:43

标签: android service geolocation

我写了一个小应用程序,它有一个Activity来控制和显示 数据,以及从GPS获取数据并将其发送到的数据的服务 活动。 原因是我喜欢这个甚至在Activity之后运行 退出..

我做了一个工作,我在位置监听器的末尾删除了 听众并重新定义它..

   lm.removeUpdates(locationListener); 
   lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, iGPSMovement, locationListener); 

但这并不好,现在它在我的HTC欲望Z上失败了。

有没有遇到过这个? 有什么工作?

我写了一个不使用服务的小应用程序(一个活动) 只能在onCreate ..

调用的requestLocationChange工作正常

请帮忙 金

2 个答案:

答案 0 :(得分:2)

不确定这是否重要,但您必须将距离设置为0的原因是,这是单位必须移动的最小距离才能使线程发射。因此,如果手机坐在你的桌子上并且没有从程序开始时占用的位置移动至少X距离,那么你就不会得到更新。通过将其设置为0,无论移动距离如何,都会强制程序以最小时间间隔进行更新。只要两个最低条件都满足,我很确定它有效。即它已超过5秒,你已经移动了10米多。

答案 1 :(得分:0)

好的,所以我尝试重写一个超级简单的服务和活动,并使用一个broatcast接收器,它就像一个魅力... 所以我转换我的应用程序,它仍然无法正常工作...但我发现Meters运动对于我的欲望工作请求为0 ..这是奇怪还是什么?无论如何,这解决了我的问题..

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);

无论我如何在服务和活动之间进行沟通,我最终都能解决所有问题。