为什么我会进入一个应该是
android.os.networkonmainthreadException的AsyncTask?我认为AsyncTask是解决这个问题的方法.这个例外是在第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,len); } return byteBuffer.toByteArray(); } catch (IOException ex) { return new byte[0]; } } }
我想用它来下载图片.
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); }
解决方法
原文地址:https://www.jb51.cc/android/314365.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。