Как это работает - requestLocationUpdates () + LocationRequest / Listener
Я новый Android-кодер, и у меня проблема с запросом обновлений для моей локализации.
Я работаю с учебниками изhttp://developer.android.com/training/location/receive-location-updates.html .
Мое приложение может обрабатывать исключения, корректно получая широту и долготу, а геокодер может обрабатывать отображение адреса. Но я спрашиваю местоположение только один раз - или когда местоположение меняется. Я хотел бы сделать интервалы времени. На данный момент я начал реализацию кода из учебников, и это выглядит так:
public class MainActivity extends Activity implements
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener,
LocationListener {
private static final int MILLISECONDS_PER_SECOND = 1000;
public static final int UPDATE_INTERVAL_IN_SECONDS = 5;
private static final long UPDATE_INTERVAL =
MILLISECONDS_PER_SECOND * UPDATE_INTERVAL_IN_SECONDS;
private static final int FASTEST_INTERVAL_IN_SECONDS = 1;
private static final long FASTEST_INTERVAL =
MILLISECONDS_PER_SECOND * FASTEST_INTERVAL_IN_SECONDS;
private TextView tvStatus;
private TextView tvLatitude;
private TextView tvLongitude;
LocationRequest mLocationRequest;
LocationClient mLocationClient;
Location mCurrentLocation;
boolean bNetworkEnabled;
boolean bGPSEnabled;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvStatus = (TextView)findViewById(R.id.tvStatus);
tvLatitude = (TextView)findViewById(R.id.tvLatitude);
tvLongitude = (TextView)findViewById(R.id.tvLongitude);
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(UPDATE_INTERVAL);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
mLocationClient = new LocationClient(this, this, this);
checkProviders();
}
Так что уже есть интервалы, реализованные и запрос местоположения. Но в приведенной мной ссылке есть комментарий, который я должен где-то использоватьrequestLocationUpdates()
(вероятноonCreate()
, onStart()
и удаление запроса наonStop()
), но у меня есть проблемы с этим. Итак, Eclipse показывает мне 3 метода:
requestLocationUpdates(LocationRequest request, LocationListener listener)
requestLocationUpdates(LocationRequest request, PendingIntent CallbackIntent)
requestLocationUpdates(LocationRequest request, LocationListener listener, Looper looper)
Поэтому первое, что я считаю наиболее правильным в этом месте. Что я должен поместить вLocationListener
слот? Я прошу помощи с небольшим объяснением, как это работает.