【发布时间】:2015-07-03 11:46:12
【问题描述】:
我在网上找到了这个sn-p:
try{
URL url = new URL(imgUrl+imageId[position]+".png");
HttpURLConnection con = (HttpURLConnection)url.openConnection();
InputStream is = con.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(is);
imageView.setImageBitmap(bmp);
}catch(Exception e) {
System.out.println(e.getMessage());
}
代码没有给我任何错误,我得到了我想要的确切网址。但是 ImageView 保持为空。运行调试器我没有问题:InputStream is = con.getInputStream();
在此之后,调试器转到 catch 块,调试器窗口显示
NetworkOnMainThreadException
我知道这是因为我在 UI 线程上进行网络操作,但我的活动已经在扩展另一个类,所以我无法扩展 AsycnTask。有什么解决方法吗?
另外:如果出现异常,应用程序不应该崩溃吗?我的应用程序运行良好,但 imageview 没有显示任何内容。
【问题讨论】:
-
开始使用毕加索。
-
试试这个 Android :使用 Asynctask 从 Web 加载图像stackoverflow.com/a/3090802/4826114
-
你的类不需要扩展 AsyncTask,创建一个扩展 AyncTask<...> 的类来编写你的代码。