2010-11-22 5 views
0

Hi * Мне нужно показать карту, передав адрес. однако в некоторых случаях все приложение будет закрыто. это может быть из-за gecoding адреса для координации. Мой вопрос - это лучший способ справиться с этим исключением при вызове карты? Следующая функция - это моя функция для получения результатов gecoder. Однако она все еще не идеальна. что я должен делать, чтобы избежать закрытия приложения? большое спасибо!! пенниПроблема с Android google google!

private void findLocation(final String locationName) { 
    Thread thrd = new Thread() { 
     @Override 
     public void interrupt() { 
      super.interrupt(); 
     } 

     @Override 
     public void run() { 

      try { 
       addressList = geocoder.getFromLocationName(locationName, 2); 
      } catch (IOException e) { 

       MyLog.e(e.getMessage()); 
      } 

      uiCallback.sendEmptyMessage(0); 

     } 
    }; 
    thrd.start(); 
} 
+1

Совет. Не используйте необработанную Thread, вместо этого используйте AsyncTask. Во-первых, вам не понадобятся такие вещи, как uiCallback. –

+0

Подумайте об использовании класса AsyncTask вместо пользовательского потока. Это намного проще, так как вам не нужно самостоятельно обрабатывать всю работу с пользовательским интерфейсом. И как сказал ddewaele, разместите трассировку стека, чтобы мы могли точно увидеть, что произошло. – Flo

+0

Спасибо! я пытаюсь сделать это – justicepenny

ответ

0

Скорее всего, ваше приложение рушится из-за RuntimeException. Можете ли вы добавить stacktrace фактического сбоя? Ваш код обрабатывает только IOException, регистрируя его. Если возникает другое (Runtime) Exception, ваше приложение все еще может быть повреждено, поскольку оно не обрабатывается должным образом.

Смежные вопросы