2

我写了一个简单的 gps 跟踪器,它在服务中收集 gps 信息

private void startListenCoordinateUpdates() {
    LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

    String provider = LocationManager.GPS_PROVIDER;
    int updateTime = 2*1000, updateDistance = 10;

    locationManager.requestLocationUpdates(provider, updateTime, updateDistance, locationListener);
}

private void stopListenCoordinateUpdates() {
    LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    locationManager.removeUpdates(locationListener);
}

private class GpsTrackerLocationListener implements LocationListener {

    @Override
    public void onLocationChanged(Location loc) {
         currentTrackInfo.addCoordinate(loc.getLatitude(), loc.getLongitude(), loc.getTime());
    }

    @Override 
    public void onProviderDisabled(String provider) { }

    @Override 
    public void onProviderEnabled(String provider) { }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) { }
}

但是当收到第一个坐标时,系统通知带有文本“GPS 设置的位置”并且我的应用程序图标被抬起。当我按下它时,会出现位置服务设置。即使我删除侦听器或卸载我的应用程序,此通知也永远不会消失。我不想表现出来。我怎样才能摆脱这个通知???我使用 android 模拟器并通过 DDMS 发送 gps 坐标

4

1 回答 1

2

请在真正的 android 设备上检查它。通常要停止从 GPS 接收器收听更新,我按照以下步骤操作。

 1. locationManager.removeUpdates(locationListener);
 2. set locationListener = null
 3. set locationManager = null

并确保您在真实设备上运行该应用程序。

于 2012-10-27T18:58:29.283 回答