位置: 编程技术 - 正文

Android网络编程 HttpUrlConnection HttpClient AsyncTask(android网络编程题库)

编辑:rootadmin

推荐整理分享Android网络编程 HttpUrlConnection HttpClient AsyncTask(android网络编程题库),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android编程技术,android网络编程面试题,android网络编程有没有什么开源项目好学,android网络编程,android网络编程技术题,android网络编程 百度网盘,android网络编程技术题,android网络编程,内容如对您有帮助,希望把文章链接给更多的朋友!

前面几篇文章介绍了Android中常用的http框架:volley,所谓框架者无非就是对我们所需的一系列操作进行了封装,简化了我们的工作。 但万变不离其宗,我们还是需要掌握Android原生的网络操作类,所以这篇文章主要介绍这两个类, HTTPUrlConnection HTTPClient,以及常需要用到的AsyncTask.

本文代码github地址:UseAsyncTask

1,HttpUrlConnection

一个UrlConnection常用来通过网络发送和获取数据,数据可以使任何类型任何长度,HttpUrlConnection通常用于发送和接收长度未知的流数据;

创建HttpURLConnection:通过调用Url.openConnection()并将其类型转换为HttpUrlConnection创建Request:要包含最基本的Url,你可以设置请求头部(请求数据类型,长度等)设置请求主体(body):这不是必须的,如果需要设置,确保setOutput(true);读取Response:返回响应,头部包含数据类型,长度等数据,可以通过getInputStream()读取响应数据的主体(body),如果没有Response没有body,则返回一个Empty Stream断开连接:调用HttpUrlConnection的disconnect()方法

使用HttpUrlConnection的一个简单示例:从远程获取图片并显示在ImageView中

上面就是HttpUrlConnection的基本用法,还有些需要掌握的主题:

Http Response错误:有时候响应错误或者异常,直接getInputStream()就会抛出异常,我们可以通过getErrorStream();读取Response错误信息,getHeaderFields()读取响应头部;Post Content:发送数据到服务器,首先需要setOutput(true);为了性能,如果你知道你所Post内容的大小,你可以使用setFixedLengthStreamingMode(int),如果不知道,可以使用setChunkedStreamingMode(int);HTTP Method:可以通过setRequestMethod(String)设置Cookie和Cache:HttpUrlConnection拥有CookieManager和CookieHandler方法来设置Cookie,对于Cache提供了HttpResponseCache类;关于这部分参考资料:HttpUrlConnection HttpResponseCache2,HttpClient

Android 官方在API 之后已经弃用,尽量使用HttpUrlConnection

3,AsyncTask

AsyncTask是实现异步操作的一种机制,我们常常需要更新UI,但主线程不能执行耗时操作,否则会引发错误;AsyncTask用于执行后台操作,无需手动处理线程的创建和执行;它常用来处理一些短时操作,如果长时间操作考虑使用Service

AsyncTask的使用:

Android网络编程 HttpUrlConnection HttpClient AsyncTask(android网络编程题库)

创建一个Task:我们需要创建一个Task继承自AsyncTask,

AsyncTask中需要三个参数Params,Progress,Result: Params 代表task执行时需要传给的参数:new MyTask.execute(Params);Progress 代表任务内需要传递的任务进度,与之相关的方法是publisProgress()和onUpdateProgress()Result 代表最终Task执行完我们所得到的结果我们还需要覆写AsyncTask中的四个方法: onPreExecute() Task执行前调用,在主线程(UI线程)中运行,进行诸如创建最初的进度条视图之类的工作doInBackground() 后台线程中运行,获取网络数据等耗时操作都在这里进行onUpdateProgress() 主线程中运行,用于更新进度,在doInBackground()方法中调用publishProgress()方法时回调。onPostExecute() 主线程中运行,当task完成时调用,

Tips:可以看到AsyncTask中的四个方法只有doInBackground()实在后台线程中运行的,因此在它里面执行一些耗时操作,而其它方法运行在UI线程,执行更新UI视图等操作。

在主线程中执行Task:必须在主线程中实例化和执行AsyncTask,而且每个AsyncTask只执行一次取消一个Task:AsyncTask可以在任何时候通过调用cancel(true)取消。

综合以上我们来做个练习:

新建项目:UseAsyncTask

在Manifest.xml中添加联网权限

创建布局,我们这里用来显示一张电影图片,

完成MainActivity总结:

这部分内容很简单吧~,其实这部分难的就是我们需要理解UI线程,以及了解AsyncTask与Service的适用场景。

参考资料:Android AsyncTask

微博: @明桑Android黑历史邮箱: <@.com>

个人主页: 明桑战胜Android汪的黑历史

Android SDK 在线更新镜像服务器资源 转:

Android apk 监听 Androidapk安装、清理数据、强行停止、卸载监听不废话,上代码receiverandroid:name=com.test.Receiverandroid:enabled=trueintent-filteractionandroid:name=android.intent.action.PACKAG

Google -gson 最全的文档 GsonUserGuideAuthors:InderjeetSingh,JoelLeitch,JesseWilsonOverviewGsonisaJavalibrarythatcanbeusedtoconvertJavaObjectsintotheirJSONrepresentation.ItcanalsobeusedtoconvertaJSONstringtoanequivalentJavaob

标签: android网络编程题库

本文链接地址:https://www.jiuchutong.com/biancheng/382238.html 转载请保留说明!

上一篇:android自定义控件之滚动广告条(Android自定义控件开发入门与实战 百度网盘)

下一篇:Android SDK 在线更新镜像服务器资源(android sdkmanager)

  • 加油站购进成品油怎么做账
  • 购销合同中约定产品质量问题引起的问题
  • 费改税是哪一年
  • 发票收款人和复核人、收款人规定
  • 每月企业所得税申报截止到几号
  • 公司之间往来款需要开收据吗
  • 去年缴纳印花税忘记做账了怎么办呢
  • 非生产性费用不应计入产品成本
  • 固定资产十几万可以直接入费用吗
  • 税率开错情况说明
  • 待评估资产价值
  • 抹掉的零头怎么入账
  • 产品不合格造成客户损失怎么赔付
  • 自产农产品加工后仍属于附注的农产品,免税吗?
  • 支付税点怎么做账
  • 押金放到哪个会计科目
  • 一般纳税人从按照简易计税方法依照3%
  • 一件商品若卖100元
  • 发票不一致是什么原因
  • 税收滞纳金变化
  • 加工业务怎么报税的
  • 企业利润表中营业收入在资产负债表中有勾千盾关系吗
  • 金融会计风险及防范措施研究目的和意义
  • 预缴附加税款会退税吗
  • Linux怎么使用vi
  • 绝地求生闪退怎么解决win10
  • 苹果电脑出现macos什么意思
  • 发票未报送怎么回事
  • 增值税进项如何取得更多
  • php枚举类
  • 债务担保是什么意思
  • 长期待摊费用如何结转
  • php ajax 实现
  • 营业外收入的会计要素
  • 无偿接收股权
  • 公司转让固定资产要交税吗
  • 座头鲸救人
  • 亚伯拉罕湖中的树,加拿大艾伯塔 (© Coolbiere/Getty Images)
  • 预缴税款从哪里查
  • 保险赔偿收入会计分录
  • 广播影视服务税率2023
  • 小微企业和民营企业的区别
  • 在计算应纳税所得额时,下列支出不得扣除
  • 存货周转率是指企业某一会计
  • mysql中数据类型主要分为哪四种
  • 信息技术服务增值税税负率是多少
  • 财务报表中存货为负数是什么意思
  • 金税四期一般纳税人开票先票后款行吗
  • 一般纳税人什么时候用简易计税
  • 机动车发票红冲后重新开具
  • 一般纳税人购买原材料会计分录
  • 应付账款的逾期利息计入什么科目
  • 购买会计软件如何入账
  • 收到财付通的短信通知
  • 税金及附加有啥
  • 部门费用的核算包括
  • 研发费用扣除75%
  • 金蝶多核算项目怎么查一个项目下的其他项目
  • mysql数据库主从数据不一致
  • ubuntu16设置启动项
  • centos双网卡配置超详细
  • win8进入传统界面
  • 如何安装win95系统
  • win8电脑定时关机怎么设置方法
  • mac安装dw
  • win8系统启动不了如何修复
  • linux哪些方法可以查看命令的详细信息
  • node.js gui
  • 通过jquery实现页面的动画效果(实例代码)
  • jquery使用教程
  • javascript数组的常用方法
  • js中checked什么意思啊
  • jquery的用法
  • javascript要怎么学
  • 安徽税务网上申报领取发票
  • 增值税发票综合服务平台升级
  • 广西地方税务局决算公开表
  • 个人所得税税收政策2023最新规定
  • 北京市生育津贴发放标准
  • 局党组中心组成员
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设