Jak to działa - requestLocationUpdates () + LocationRequest / Listener
Jestem nowym koderem Androida i mam problem z żądaniem aktualizacji dla mojej lokalizacji.
Pracuję z samouczkami odhttp://developer.android.com/training/location/receive-location-updates.html .
Moja aplikacja może obsługiwać wyjątki, odpowiednio dopasowując szerokość geograficzną i długość geograficzną, a geokoder może obsługiwać wyświetlanie adresu. Ale proszę o lokalizację tylko raz - lub gdy zmienia się lokalizacja. Chciałbym robić odstępy czasu. Na razie zacząłem implementować kod z samouczków i wygląda to tak:
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();
}
Tak więc są już wprowadzone interwały i żądanie lokalizacji. Ale w linku, który podałem, pojawia się komentarz, który powinienem gdzieś użyćrequestLocationUpdates()
(prawdopodobnieonCreate()
, onStart()
i usunięcie żądania w dniuonStop()
), ale mam z tym problem. Eclipse pokazuje mi 3 metody:
requestLocationUpdates(LocationRequest request, LocationListener listener)
requestLocationUpdates(LocationRequest request, PendingIntent CallbackIntent)
requestLocationUpdates(LocationRequest request, LocationListener listener, Looper looper)
Więc pierwszy, który moim zdaniem jest najbardziej odpowiedni w tym miejscu. Co powinienem umieścićLocationListener
otwór? Proszę o pomoc z małym wyjaśnieniem, jak to działa.