我有下面的代碼,其中每30 seconds
和10 meters
Most Recent location
,但它會不斷接收位置更新和它會在每30秒後收到最近的位置更新。高效的方式獲取當前位置(位置更新)每30秒後,距離爲10米
有沒有更好/有效的方法來做到這一點?
基本上我的要求是每30秒使用Current Location
和10 meters distance moved
。我可以用幾種方法做到這一點,我在想有沒有更好的方法來解決這個問題?那麼Timer類呢?
任何想法都會有很大的幫助。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new GPSLocationListener();
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
30000,
10,
locationListener);
}
下面是實現LocationListener
的類。
private class GPSLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
if (location != null) {
GeoPoint point = new GeoPoint(
(int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
System.out.println(location.getLatitude()+"--"+location.getLongitude());
}
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
每隔30秒獲取gps座標將會更快地耗盡電池電量。 – Lucifer
@Lucifer,那麼理想的時間應該是什麼?由於我需要利用當前位置,因此我應該設置什麼時間間隔? – ferhan
[位置每35秒更新一次並在當前位置繪製圓圈]的可能重複(http://stackoverflow.com/questions/12451722/location-updates-every-35-seconds-and-draw-a-circle-在最當前的定位)。 – trashgod