Android: дождитесь появления объекта - PullRequest
1 голос
/ 10 февраля 2011

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

      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");
             }
         }
      }

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

1 Ответ

0 голосов
/ 10 февраля 2011

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

...