/ / Местонахождение Android: първо място - андроид, GPS, местонахождение

Местоположение на Android: първо място - андроид, GPS, мениджър на местоположението

Трябва да се изчислят някои неща, когато се получи първото място (не е нужно да бъде много точен).

Имам LocatorManager и LocationListenerи досега имам boolean firstTime, който първоначално е вярно, и за пръв път, когато се нарича "onlocationChanged", го поставям на фалшива. Но всеки път, когато се използва методът onlocationChanged (на всеки 5 секунди), проверявам дали firstTime е невярно.

Това решение наистина не ме задоволява, има ли по-добър начин да проверите за събития за първи път? (Този въпрос може да е в по-широк контекст, а не само в GPS Местоположение).

Ще дам някакъв код за по-добро разбиране:

boolean firstLocation = true;
LocationManager locManager = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);

LocationListener locListener = new LocationListener() {

@Override
public void onLocationChanged(Location location) {
if (firstLocation == true) {
sights = getListForLocation(location, GPS_INITIAL_PERIMETER);
firstLocation = false;
}
// do something everytime onLocationChanged is called

}
};

/**
* starts the listener for GPS-Positions
*/
public void start() {
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
GPS_UPDATE_TIME, GPS_UPDATE_DISTANCE, locListener);
}

Както можете да видите, трябва да направя нещо само за първи път, когато получа ново място.

Отговори:

1 за отговор № 1

Започнете местоположението си с null и го проверете:

if(lastKnownLocation == null)
{
//first time
}

и в LocationListener направете:

@Override
public void onLocationChanged(Location location)
{
lastKnownLocation = location;
}