【问题标题】:locationListener is only called once when requested in a ServicelocationListener 仅在服务中请求时调用一次
【发布时间】:2011-06-22 08:25:43
【问题描述】:

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

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

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

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

有人遇到过这种情况吗? 解决方法是什么?

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

请帮忙 金

【问题讨论】:

  • 您可以发布您的服务代码吗?
  • 谢谢,我已经完成了一个全新的代码并且正在处理它,我相信这是我的服务监听器功能在玩我。当我完成测试时,我会更新你。 .
  • 好的,所以我尝试重写一个超级简单的服务和活动并使用广播接收器,它就像一个魅力......
  • 所以我转换了我的应用程序,但它仍然无法正常工作......但后来我发现 Meters 运动必须为 0 才能使请求工作在我的 Desire 上......这是奇怪的还是什么?无论如何,这解决了我的问题.. lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);是我最终的结果..

标签: android service geolocation


【解决方案1】:

不确定这是否重要,但您必须将距离设置为 0 的原因是,这是单元必须移动的最小距离才能触发线程。因此,如果电话放在您的桌子上,并且在程序开始时没有移动至少 X 距离,您将不会获得更新。通过将其设置为 0,您将强制程序以最小时间间隔更新,而不管移动距离如何。我很确定它只有在满足两个最低条件时才有效。 IE。已经超过 5 秒,你已经移动了 10 米。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 2011-04-14
      • 1970-01-01
      相关资源
      最近更新 更多