首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LocationListener超时

LocationListener超时
EN

Stack Overflow用户
提问于 2012-03-19 18:03:22
回答 2查看 1.7K关注 0票数 2

我当前正在使用计时器来确定位置侦听器是否已超时?问题是gps仍然是开着的。我不知道为什么,有没有一个方法可以在locationlistener超时时重写,或者是一个更优雅的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-19 18:35:42

考虑将GPS状态侦听程序添加到位置管理器。当GPS开始、停止、接收到第一个修复或卫星状态时,状态监听器被通知。对于可见的卫星,你至少需要4个)的改变。

监听程序可能如下所示:

代码语言:javascript
复制
class GpsStatusListener implements GpsStatus.Listener {

    @Override
    public void onGpsStatusChanged(final int event) {
        switch( event ) {
                        // ...
            break;
        case GpsStatus.GPS_EVENT_STOPPED:
                        // ...
            break;
        case GpsStatus.GPS_EVENT_FIRST_FIX:
                        // ...
            break;
        case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
                        // ...
            break;
        }
    }
}

添加方式如下:

代码语言:javascript
复制
lm.addGpsStatusListener(new GpsStatusListener());

当GPS状态改变时,您不需要删除位置侦听器。

您还可以通过覆盖以下方法之一从位置管理器获取其他信息:

代码语言:javascript
复制
public void onStatusChanged(final String provider, final int status, final Bundle extras) {
    switch( status ) {
    case LocationProvider.AVAILABLE:
                // ...
        break;
    case LocationProvider.OUT_OF_SERVICE:
                // ...
        break;
    case LocationProvider.TEMPORARILY_UNAVAILABLE:
                // ...
        break;
    }
}

@Override
public void onProviderEnabled(final String provider) {
                // ...
}

@Override
public void onProviderDisabled(final String provider) {
                // ...
}
票数 2
EN

Stack Overflow用户

发布于 2012-03-19 18:31:10

发生超时或获取当前位置时,应删除location listener。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9768209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档