Я получаю сообщение об ошибке при использовании этого метода.При переполнении стека этот вопрос задавался раньше, какой-то другой ответ использовал этот метод в AsyncTask, и я попробовал этот путь, но проблема не решена.
@SuppressLint("StaticFieldLeak")
private class getStartLocationAddress extends AsyncTask<Void, Void, Void> {
//assign result :
StringBuilder result = new StringBuilder();
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... voids) {
//getting onCameraIdle listener Supplied latlng address :
try {
Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.US);
List<Address> addresses = geocoder.getFromLocation(Common.mLastLocation.getLatitude(), Common.mLastLocation.getLongitude(), 1);
if (addresses.size() > 0) {
Address address = addresses.get(0);
for (int i = 0; i <= addresses.get(0).getMaxAddressLineIndex(); i++) {
if (i == addresses.get(0).getMaxAddressLineIndex()) {
result.append(addresses.get(0).getAddressLine(i));
} else {
result.append(addresses.get(0).getAddressLine(i)).append(",");
}
}
}
} catch (IOException e) {//network or other I/O problems
e.printStackTrace();
}catch (IllegalArgumentException ia){//passing Invalid latitude or Longitude
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
if (result != null) {
Common.finalPassengerLocationInString= result.toString();
}else {
Common.finalPassengerLocationInString= "Your Present Location";
}
}
}
Но иногда приложение останавливается.Что делать?