Android(四)----网络编程

网络图片查看

  • 客户端发送http请求至服务器,如果请求成功,响应码为200,服务器会通过流向客户端返回请求的数据
  • 主线程阻塞,应用会停止刷新界面,停止响应用户任何操作,用户体验非常差
  • 耗时操作不要写在主线程

ANR异常

  • Application not responding

消息队列

  • 只有主线程可以刷新ui(弹吐司框,设置图片信息等),避免线程混乱,线程出现不安全(怪打ui和吃血瓶回血ui,本应该是被怪打后,再吃血瓶加血,先掉后加,线程混乱就会出现先加后掉)
  • 主线程创建时,同时也会创建MessageQueue(消息队列)和Looper(消息轮询器)对象
  • 如果需要使用消息队列机制,程序员需要自行创建Handler(消息处理器)
  • 轮询器不断检测消息队列中是否有消息,如果有,就会把消息取出,交给Handler对象
  • Handler对象拿到消息之后,就会在主线程执行handleMessage()
  • 也就是说子线程,只要往消息队列中发送消息,主线程立刻执行handleMessage()

请求文本信息

提交数据

get方式提交表单

  • 数据拼接在url后面写给服务器
  • 表单数据需要经过url编码

post方式提交表单

  • 数据通过输出流写给服务器

HttpClient

  • apache提供的一个发送Http请求的框架
  • 1.创建HttpClient对象: HttpClient client = new DefaultHttpClient();
  • 使用异步HttpClient提交表单
    • 导入工具类asyncHttpClient
    • 不需要自己创建子线程

多线程断点续传下载

多线程:快

  • 原理:抢占服务器资源
  • 单线程下载:线程从第0个字节开始下,下到最后一个字节,在本地硬盘的临时文件中从第0个字节开始写,写到最后一个字节,下载完成时,临时文件也写完了(开始下载时临时文件的大小就是源文件大小),本地就创建了一个与服务器文件一模一样的文件
  • 多线程下载:每条线程下载的开始位置和结束位置都是不一样的,每条线程下载的数据合在一起才是服务器的完整的文件

断点续传:

  • 下载从上一次下载结束的位置开始
  • 原理:每次下载把下载进度保存至一个文本临时文件中,下一次下载时从文本临时文件获取上一次下载的进度,从这个进度开始继续下载

进度条

  • 计算下载百分比进度时要在long类型下计算

使用Xutil工具下载

  • github下载源码
  • 导入jar包
  • 注意,导入第三方jar包到libs下,关联第三方源码时,应新建文件,文件名为jar包名(.jar.properties),里面写明源码路径(如src=F:\\library\\src)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值