如何确定我不再获得位置更新

时间:2014-12-23 23:08:11

标签: android gps google-api listener google-api-client

我的应用每3秒通过LocationServices.FusedLocationApi向Google服务部门请求位置更新。它有一个漂亮的小卫星图标,用于指示GPS是否正常工作。

我实施了ConnectionCallbacksOnConnectionFailedListenerLocationListener接口,以便恰当地更改图标:

@Override
public void onConnected(Bundle arg0)
{
    LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this); // starts location updates
    SetConnectionStatus(false); // AKA change GPS status icon to "not connected"
}

@Override
public void onConnectionSuspended(int arg0)
{
    LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this);
    SetConnectionStatus(false);
}

@Override
public void onConnectionFailed(ConnectionResult arg0)
{
    LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this);
    SetConnectionStatus(false);
}

@Override
public void onLocationChanged(Location arg0)
{
    if (arg0 == null)
    {
        SetConnectionStatus(false);
        return;
    }

    SetConnectionStatus(true);
}

现在,除了一种情况外,这看起来像魅力。我在手机中打开GPS并启动应用程序。图标很快就会从"未连接"到"连接"我在LogCat中每隔3秒开始获取更新。然后,我最小化应用程序并关闭GPS。图标仍显示"已连接"尽管我完全停止了新的位置更新(LogCat不打印它们)。

我的问题是,如何检测到我停止获取新数据?我应该实施一些听众吗?我不想创建一个单独的帖子,其唯一的目的是每5秒检查一次我是否仍然得到更新。

0 个答案:

没有答案