2011-08-29 57 views
0

在我的应用程序中使用当前位置lat,long。每5分钟定期更新一次。并在后台运行,意味着当我启动我的应用程序时,弹出窗口出现,询问“你想使用当前位置”,如果我按下“是”,那么服务将在应用程序的背景上运行,并使用当前位置lat long,每5分钟刷新一次,如何做到这一点。如何做出这样的服务。由于我在新的Android详细如何定期获取当前位置的经纬度。

请解释。 每一个帮助,将不胜感激 在此先感谢

回答

2

以用户友好和节能的方式处理位置更新不是一件容易的事。

我强烈建议你阅读雷托·梅尔的A Deep Dive Into Location(和second part)。

更新

有一个简单的(错误)的方式来做到这一点:设置AlarmManager唤醒服务,每5分钟该请求的位置。

这是错误的几个原因。这样做的权利首先回答自己这个问题:

  1. 你需要的位置更新正是每5分钟?
  2. 即使您的应用不活跃?
  3. 即使手机处于睡眠模式?
  4. 即使手机长时间没有移动(例如用户正在睡觉)?
  5. 你需要什么准确度? 10米还是300米?
  6. 你需要所有位置的GPS精度吗? GPS在数小时内耗尽电池。
  7. 如果用户移动速度很快,是否需要更新?在汽车中5分钟可以意味着10英里。
+0

喜彼得,你推荐我这么典型的解决方案我在Android的多数民众赞成新的,为什么我张贴在这里为获得适当的SOLN。但我不明白上面的链接。一路感谢您的欢迎,如果你有任何其他的解决方案。 – shyam

+0

hi peter,我可以创建一个服务类并使用timer.schedule()在某些时间间隔内运行服务,并在我的manifest.by中定义服务类,通过使用此代码在必需的时间间隔内自动运行并能够获取当前的经纬度长 ? – shyam

+0

这不是一个好习惯,因为在这种情况下,服务必须始终运行 - 这很难实现,因为操作系统在需要时会杀死服务,并且服务在手机处于睡眠模式时也不会运行。建议使用AlarmManager。当你的应用程序不活动时,你也不需要这样做。 –

相关问题