【问题标题】:How to get current location latitude and longitude periodically .如何定期获取当前位置的经纬度。
【发布时间】:2011-08-29 14:38:39
【问题描述】:

在我的应用程序中使用当前位置 lat,long。每5分钟定期更新一次。并在后台运行,这意味着当我启动我的应用程序时,会弹出一个窗口并询问“你想使用当前位置吗”如果我按“是”,那么服务将在应用程序的后台运行并使用当前位置 lat long,意味着每5分钟刷新一次,所以怎么做。如何做这样的服务。

由于我是android新手,请详细解释。 每一个帮助将不胜感激 在此先感谢

【问题讨论】:

    标签: android service


    【解决方案1】:

    以用户友好且省电的方式处理位置更新并非易事。

    我强烈建议您阅读 Reto Meier 的 A Deep Dive Into Location(和 second part)。

    更新

    有一种简单(但错误)的方法:将 AlarmManager 设置为每 5 分钟唤醒一次请求位置的服务。

    这是错误的有几个原因。要做到这一点,首先要回答自己以下问题:

    1. 您是否需要每 5 分钟准确地更新一次位置信息?
    2. 即使您的应用未激活?
    3. 即使手机处于睡眠模式?
    4. 即使手机长时间没有移动(例如用户正在睡觉)?
    5. 您需要什么精度? 10m还是300m?
    6. 您需要所有位置的 GPS 精度吗? GPS 会在几小时内耗尽电池电量。
    7. 如果用户快速移动,您是否需要更新?开车 5 分钟很容易就意味着 10 英里。

    【讨论】:

    • 嗨,彼得,您向我推荐了如此典型的解决方案,我是 android 新手,这就是为什么我在这里发帖以获得适当的解决方案。但我无法理解您的链接。无论如何,如果您有任何其他解决方案,欢迎您。
    • 嗨彼得,我可以创建一个服务类并使用 timer.schedule() 在某些时间间隔内运行服务并在我的清单中定义服务类。通过使用这个我的代码在需要的时间内自动运行间隔并能够获得当前的纬度吗?
    • 这不是一个好的做法,因为在这种情况下,服务必须一直运行 - 这很难实现,因为操作系统会在需要时终止服务,并且当手机处于睡眠模式时服务也不会运行.按照建议使用 AlarmManager。此外,当您的应用处于非活动状态时,您也不需要这样做。
    猜你喜欢
    • 1970-01-01
    • 2011-08-31
    • 2017-05-09
    • 2017-07-23
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    相关资源
    最近更新 更多