Neden bir Android.os.NetworkOnMainThreadException olmalıdır bir AsyncTask alıyorum? AsyncTask'ın bu sorunun çözümü olduğunu düşündüm. Ekspresyon 7 satırındadır.android.os.NetworkOnMainThreadException
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];
}
}
}
Resim indirmek için kullanmak istiyorum. doğrudan, aslında AsyncTask işlevselliği kullanmıyorsanız doInBackground()
arayarak
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);
}
Eğer AsyncTask – ianhanniballake
olası yinelenen çağrı kodu ekleyin [android.os.NetworkOnMainThreadException] (http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception) – njzk2
Hiçbir yinelenen, bütün yayınlar, çünkü yaklaşık async görevini kullanmayan ama yine de istisnasız olanları alıyorum. –