最近学到了Android的网络编程,在这里简单总结记录一下。
如上图所示,
从Android4.0开始,要求访问网络不能在UI主线程里进行,这就要求开发者新建线程来访问网络。并且,更重要的一点,不能在子线程中更新UI。
但是,我们从网络上获取数据必须在子线程中完成,UI主线程负责更新UI的内容,该怎么办?
这时候,子线程获取的网络数据,必须由子线程发送给UI主线程。
这就要用到androd中的headler机制。
headler原理:
headler存在于UI主线程中,在访问网络的子线程中使用headler发送message给UI主线程,UI主线程得到message里封装的数据,就可以更新UI了。
有两种常用的框架封装了headler,方便异步访问网络:
1、AsyncTask异步任务,Android自带
2、volley ,google , 常用于请求json数据和图片
在访问网络的子线程中,有两种访问方式:
1、HttpClient
2、HttpUrlConnection