【问题标题】:does getlastknownlocation run in a separate thread?getlastknownlocation 是否在单独的线程中运行?
【发布时间】:2011-08-12 15:21:53
【问题描述】:

我有一个简单的疑问。
当手机获取位置更新时,我必须显示一个进度对话框。
我是否需要在单独的线程中执行此操作,或者 getLastKnownLocation 是否已经在单独的线程中运行。
如果没有人可以发布一个小示例代码,最有效的方法是什么?
我浏览了android api源并没有成功找到工作。

【问题讨论】:

    标签: android multithreading location progressdialog


    【解决方案1】:

    getLastKnownLocation 同步运行,它实际上并没有获得当前位置(这可能是您想要的)。这是文档:http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation%28java.lang.String%29

    亮点:

    返回一个 Location 指示来自最后一个已知位置的数据 从给定的提供程序获得的修复。这可以在没有 启动提供程序。请注意,此位置可能已过时, 例如,如果设备已关闭并移动到另一个 位置。

    如果提供者当前被禁用,则返回 null。

    您可能想要的是更多类似于这个问题的内容:displaying progress dialog at the start of a gps application

    【讨论】:

    • 感谢您的回答。但是,您建议的链接要求每 10 秒更新一次位置。我只想更新位置。这就是我使用 getLastKnownLocation 的原因。有一个更好的方法吗?我必须通过请求位置更新来避免过多消耗用户的电池电量。
    • @Brahadeesh 你也可以requestSingleUpdate
    • requestSingleUpdate 是同步运行还是异步运行?
    • @Brahadees,它是异步的,但是如果你指定了一个监听器,那么当位置可用时你会得到一个回调:public void requestSingleUpdate (Criteria criteria, LocationListener listener, Looper looper)See the documentation of requestSingleUpdate for more details
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    相关资源
    最近更新 更多