
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);}解决方法 通过直接调用doInBackground(),您实际上并没有使用AsyncTask功能.相反,您应该调用 execute(),然后通过覆盖AsyncTask的 onPostExecute()方法来使用结果,如同一页面的“用法”部分所述. 总结 以上是内存溢出为你收集整理的AsyncTask的doInBackground中的android.os.NetworkOnMainThreadException全部内容,希望文章能够帮你解决AsyncTask的doInBackground中的android.os.NetworkOnMainThreadException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)