Я знаю, что первое, что ты собираешься сделать, это... почему черт в мире, который ты использовал в AsyncTask.
Итак, вот моя проблема: я работаю над некоторым Android-приложением (API 7 для Android версии 2.1 или выше), и я тестирую эмулятор, и все было в порядке, поэтому я тестировал на HTC Sensation, и он говорит NetworkOnMainThreadExeption!
Я загружал несколько фотографий, а затем рисовал на карте.
Поэтому для решения этой проблемы каждое (подключение к Интернету) в этом случае загружает изображения, которые я должен использовать для работы AsyncTask.
Итак, мне нужен метод, чтобы узнать, когда все снимки сделаны, поэтому я могу начать рисовать.
Я так много пытался, и никакого результата я понятия не имел. У меня есть одно решение с обработчиком, но если вы работаете на более медленной сети, я получаю nullpointer (потому что картинки не загружаются).
Итак, пожалуйста, помогите мне.
EDIT:
вот идея:
Bitmap bubbleIcon ;
    onCreate(){
     ...
// i am making call for Async
new ImgDown().execute(url);
//and then i calling functions and classes to draw with that picture bubbleIcon !
DrawOnMap(bubbleIcon);
}
//THIS IS ASYNC AND FOR EX. SUPPOSE I NEED TO DOWNLOAD THE PIC FIRST
     class ImgDown extends AsyncTask<String, Void, Bitmap> {
        private String url;
        public ImgDown() {
        }
        @Override
        protected Bitmap doInBackground(String... params) {
            url = params[0];
            try {
                return getBitmapFromURL(url);
            } catch (Exception err) {
            }
            return null;
        }
        @Override
        protected void onPostExecute(Bitmap result) {
            bubbleIcon = result;
            bubbleIcon = Bitmap
                    .createScaledBitmap(bubbleIcon, 70, 70, true);
        }
        public Bitmap getBitmapFromURL(String src) {
            try {
                Log.e("src", src);
                URL url = new URL(src);
                HttpURLConnection connection = (HttpURLConnection) url
                        .openConnection();
                connection.setDoInput(true);
                connection.connect();
                InputStream input = connection.getInputStream();
                // /tuka decode na slika vo pomalecuk kvalitet!
                BitmapFactory.Options options = new BitmapFactory.Options();
                options.inSampleSize = 3;
                Bitmap myBitmap = BitmapFactory
                        .decodeStream(new FlushedInputStream(input));
                Log.e("Bitmap", "returned");
                return myBitmap;
            } catch (IOException e) {
                e.printStackTrace();
                Log.e("getBitmapFromURL", e.getMessage());
                return null;
            }
        }
        class FlushedInputStream extends FilterInputStream {
            public FlushedInputStream(InputStream inputStream) {
                super(inputStream);
            }
            public long skip(long n) throws IOException {
                long totalBytesSkipped = 0L;
                while (totalBytesSkipped < n) {
                    long bytesSkipped = in.skip(n - totalBytesSkipped);
                    if (bytesSkipped == 0L) {
                        int byteValue = read();
                        if (byteValue < 0) {
                            break; // we reached EOF
                        } else {
                            bytesSkipped = 1; // we read one byte
                        }
                    }
                    totalBytesSkipped += bytesSkipped;
                }
                return totalBytesSkipped;
            }
        }
    }
Надеюсь, теперь яснее.