android - 一旦我调用 client.disconnect,位置图标就不会消失

标签 android location google-play-services

我尝试一次检索用户的位置,然后从位置服务断开连接()以避免电池使用。问题是,即使在我断开连接后,我也会在状态区域中看到位置箭头图标 - 即使在客户端上调用断开连接后,回调 onDisconnected() 也永远不会被调用。

这就是我正在做的:

onResume() 我连接:

mLocationClient = new LocationClient(this, this, this);
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(LOCATION_UPDATE_INTERVAL);
mLocationRequest.setFastestInterval(1);
mLocationClient.connect();

onConnected() 中,我尝试获取 laSTLocation,如果它不为空,我将获取它并断开与位置服务的连接。如果它为空,我开始监听更新:

if (mLocationClient.getLastLocation() != null) {
        userLocation = mLocationClient.getLastLocation();
        stopLocationServices();
        // do something which requires location
} else {
        mLocationClient.requestLocationUpdates(mLocationRequest, this);
}

onLocationChanged

userLocation = mLocationClient.getLastLocation();
stopLocationServices();
// do something which requires location

我的 stopLocationServices() 函数如下所示:

private void stopLocationServices() {
    if (mLocationClient != null) {
        try {
            mLocationClient.removeLocationUpdates(this);
            mLocationClient.disconnect();
        } catch (Exception e) {}
    }
    mLocationClient = null;
}

感谢您的帮助。

最佳答案

如果 getLastLocation() 不返回 null 并且 stopLocationServices() 被顺序调用,那么您将尝试在 mLocationClient 上执行 removeLocationUpdates() 而不是首先请求它们,这可能会抛出异常并且可能是 onDisconnected( ) 永远不会被调用。

关于android - 一旦我调用 client.disconnect,位置图标就不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24318680/

相关文章:

android - 构建 Android SDK : Only one Android target being created

Android LocationServices.checkLocationSettings 假阴性结果

Android - 网络日期/时间

android - 如何在不收费的情况下测试IAB

android - Google Maps Android API v2 抛出 GooglePlayServicesNotAvailableException,过期,SupportMapFragment.getMap() 返回 null

android - 使用 chrome 进行远程调试仅适用于较旧的人行横道版本 [cordova 4]

android - 与 Fragment (GMap) 一起使用时 SlidingMenu 上的空白屏幕

java - 斜杠上的 Gson MalformedJsonException

java - 如何从另一个类的 onLocationChanged() 调用 Activity 中的方法

javascript - 对于没有 SSL 的网站,有 getCurrentPosition() 的免费替代品吗?