android.os.NetworkOnMainThreadException in AsyncTask doInBackground

Warum bekomme ich in einer AsyncTask eine android.os.NetworkOnMainThreadException? Ich dachte, dass eine AsyncTask die Lösung für dieses Problem ist. Die Ausnahme ist in Zeile 7.

private class ImageDownloadTask extends AsyncTask<String, Integer, byte[]> {
    @Override
    protected byte[] doInBackground(String... params) {
        try {
            URL url = new URL(params[0]);
            URLConnection connection = url.openConnection();
            InputStream inputStream = connection.getInputStream();
            ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
            int bufferSize = 1024;
            byte[] buffer = new byte[bufferSize];

            int len;
            while ((len = inputStream.read(buffer)) != -1) {
                byteBuffer.write(buffer, 0, len);
            }
            return byteBuffer.toByteArray();
        } catch (IOException ex) {
            return new byte[0];
        }
    }
}

Ich möchte es zum Herunterladen eines Bildes verwenden.

public byte[] getProfilePicture(Context context, String id) {
    String url = context.getString(R.string.facebook_picture_url_large, id);
    ImageDownloadTask task = new ImageDownloadTask();
    return task.doInBackground(url);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage