我需要找到超时的用户位置,然后我写了这样的代码
启动 LocationListener
GPSLocationListener = new LocationListener() { @Override public void onLocationChanged(Location location) { _timerGPSLocation.cancel(); } @Override public void onStatusChanged(String provider, int status, Bundle b) { } @Override public void onProviderEnabled(String s) { } @Override public void onProviderDisabled(String s) { } }; _locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance, _GPSLocationListener);
`
设置超时计时器
_timerGPSLocation = new Timer(); _timerGPSLocation.schedule( new TimerTask() { @Override public void run() { _locationManager.removeUpdates(_GPSLocationListener); } }, (long)(timeout*1000) );
我认为多次这样做(尝试读取坐标并设置超时计时器)可以让 GPS 联系一些卫星并给我正确的位置。有更好的方法吗?超时调用 _locationManager.removeUpdates 会删除所有联系的卫星吗?
编辑:
我的目标是定期(5 分钟)读取 GPS。在尝试使用 GPS 读取获取位置时,我还需要设置超时。如果超时后没有读取位置,我需要停止位置侦听器。我已经使用这里的代码列表实现了这一点。
现在我的问题是,如果因为超时而删除 LocationListener 会导致 GPS 和卫星之间的“确认”丢失。