so I am making an application to get current position. The code below is working fine
String stringAddress = "";
public void getLocation(View view){
final LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria kriteria = new Criteria();
kriteria.setAccuracy(Criteria.ACCURACY_FINE);
kriteria.setAltitudeRequired(false);
kriteria.setBearingRequired(false);
kriteria.setCostAllowed(true);
kriteria.setPowerRequirement(Criteria.POWER_LOW);
final String provider = lm.getBestProvider(kriteria, true);
final Location lokasi = lm.getLastKnownLocation(provider);
updateWithNewLocation(lokasi);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 5, ll);
edittext_position.setText(stringAddress);
}
private void updateWithNewLocation(Location
if(lokasi != null){
double lat = lokasi.getLatitude();
double lng = lokasi.getLongitude();
Geocoder gc = new Geocoder(this, Locale.getDefault());
try{
List addresses = gc.getFromLocation(lat, lng, 1);
StringBuilder sb = new StringBuilder();
if(addresses.size()>0){
Address address = addresses.get(0);
sb.append(address.getAddressLine(0));
stringAddress= sb.toString();
}
} catch (Exception e){
}
}
}
private final LocationListener ll = new LocationListener() {
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public void onProviderEnabled(String provider) {
}
public void onProviderDisabled(String provider) {
updateWithNewLocation(null);
}
public void onLocationChanged(Location location) {
updateWithNewLocation(location);
}
}
but the problem is everytime I call getLocation() function, the application hang for a couple second before returning the result. I know to solve this problem using aSyncTask but I don't know how to start. Appreciate your help.
Thank you