遇到的问题
之前在学习android开发视频的时候,学习到从网络上下载图片并显示,但发现会报
NetworkOnMainThreadException,后来几经查证发现,在android 中实现网络访问等操作时由于对于网络状况的不可预见性,很有可能在网络访问的时候造成阻塞,那么这样一来我们的主线程UI线程 就会出现假死的现象,产生很不好的用户体验。所以,默认的情况下如果直接在主线程中访问就报出了这个异常,名字是NetworkOnMainThreadException
解决该问题的办法
1. 独立线程
2. 异步线程AsyncTask
3. StrictMode修改默认的策略
这里采用第一种方法来实现功能:
首先要注意在功能清单文件中加上访问网络的权限:
接下来编写工具类,主要用于从网络中读取数据
工具类1:
package StreamTool; import java.io.ByteArrayOutputStream; import java.io.InputStream; /** * Created by Administrator on 2015/11/30. */ public class Streamtool { public static byte[] readDate(InputStream inputStream)throws Exception { ByteArrayOutputStream outputStream=new ByteArrayOutputStream(); int len=0;