2011-02-09 2 views
1

Я не могу придумать, как подождать, пока появится объект. Я пишу приложение для камеры. Сделав снимок, я записываю данные GPS в теги exif. Я должен дождаться появления объекта местоположения перед записью. Мое быстрое и грязное исправление, чтобы начать новую нить и использовать время цикл «ждать» для объекта:Android: Ждите появления объекта

 private static class MyRunnable implements Runnable { 
     private final String imagePath; 
     private final String thumbPath; 
     MyRunnable(final String anImagePath, String aThumbPath) { 
      this.imagePath = anImagePath; 
      this.thumbPath = aThumbPath; 
     } 

     public void run() { 
      while (mCurrentLocation == null) { 
       //do nothing 
      } 
      try { 
      writeExifTags(imagePath); 
      writeExifTags(thumbPath); 
      } 
      catch (NullPointerException e) { 
       Log.i(TAG, "NullPointerException"); 
      } 
     } 
     } 

Это работает, но пустой, а контур выглядит очень некрасиво. Я думаю о каком-то обработчике объекта, но не могу придумать способ использования обработчиков для проверки существования mCurrentLocation. Кто-нибудь со вспышкой остроумия? :) (Да, блок try/catch теперь устарел ^^)

ответ

0

Вы можете попробовать использовать AsyncTask?

+0

ну, я мог бы. Но я не имею никакого преимущества перед моим текущим Методом. У меня главный вопрос: как периодически проверять, чтобы объект был нулевым. Преимуществом может быть сон/ожидание во время цикла ... – Redfox

+0

Я вижу. Как насчет использования обработчиков, как вы сказали, и использовать назначение методов, поскольку они только способ изменения mCurrentLocation. Когда вы используете метод, чтобы присвоить ему null-огонь событие handle. – AedonEtLIRA

+0

Я реализовал AsyncTask для проблемы. Код выглядит более чистым (хотя он делает то же самое). Моя мотивация немного ниже, чтобы разобраться в обработчиках, поскольку проблема уже решена. Я добавил «Thread.sleep (1);» к циклу while. Это кажется приемлемым для меня. Спасибо, тем не менее, за вашу помощь. :) – Redfox

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