Android网络通信之异步任务处理

    AsyncTask 是 android 提供的轻量级的异步类,可以直接继承 AsyncTask 在类中实现异步操作,并提供接口反馈当前异步执行的程度,最后反馈执行的结果给 UI 主线程。

    AsyncTask 定义了三种泛型类型:
  • Params 启动执行任务的输入参数,比如 HTTP 请求的 URL 。
  • Progress 后台执行任务的百分比。
  • Result 后台执行任务最终返回的结果。
   
    AysncTask必须被继承使用。子类至少覆盖 doInBackground(Params...) 方法,最经常覆盖 onPostExecute(Result) 方法。 当一个 AsyncTask 被执行,任务经过以下步骤:
  1. onPreExecute() , 在 UI 线程上调用任务后立即执行。
  2. doInBackground(Params...) , 比较耗时的操作都可以放在这里。异步任务的参数也被传到这步。在执行过程中可以调用 publishProgress(Progress...)来更新任务的进度。注意这里不能直接操作 UI 。
  3. onProgressUpdate(Progress...),一次调用 publishProgress(Progress...) 后调用 UI 线程。
  4. onPostExecute(Result) , 当后台计算结束时,调用 UI 线程。后台计算结果做一个参数传递到这步。

    使用 AsyncTask 类,必须遵守以下的线程规则:
  • Task 实例必须在 UI thread 中创建;
  • execute 的方法必须在 UI thread 中调用;
  • 不要手动调用 onPreExexute(), onPostExecute(Result),doBackground(Params...), onProgressUpdate(Progress...) 这几个方法;
  • 该 task 只能被执行一次,否则多次调用时将会出现异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值