转自:http://www.cnblogs.com/tony-yang-flutter/p/androidtimeout.html

以用户登录为例介绍用户访问网络时的请求超时处理的两种方法:

一. 使用android提供的工具类AsyncTask类,此类提供了一个AsyncTask.execute().get(timeout, unit);方法用于处理用户的请求超时的操作,可以设置请求超时的时间(timeout)以及请求时间的单位(unit)。

  例如:设置超时时间为2秒,单位为毫秒

try {AsyncTask(此处应该是它的实例化对象).execute().get(2000, TimeUnit.MILLISECONDS);} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();} catch (TimeoutException e) {//此处用来处理用户超时后的操作,例如:跳转界面,弹出提示框。//备注:此处不能直接进行界面操作,否则回报ANR异常。如果相处理界面操作,则和handler进行结合}        

二. 第二种方法相对来说就比较复杂了,你需要自定义请求超时操作

1)自定义一个TimerTask,用于向handler发送请求超时消息

class MyTimerTask extends TimerTask{@Overridepublic void run() {handler.sendEmptyMessage(5000);}}

2)定义一个设置请求超时的方法,超时时间为5秒

    private void checkTimeOut(){try{timer = new Timer();task = new MyTimerTask();timer.schedule(task, 5000);}catch(Exception e){Log.e("timer", e.getMessage());}}

3)开发登录线程

    private class LoginThread extends Thread{@Overridepublic void run() {try{try {checkTimeOut();//下面用于编写请求网络数据的代码} catch (JSONException e) {e.printStackTrace();}handler.sendEmptyMessage(5000);}catch(Exception e){Log.e("LoginThread", e.getMessage());}}}

4)在handler中处理请求超时或者请求成功的操作

    Handler handler = new Handler() {public void handleMessage(Message msg) {switch(msg.what){case 5000://关掉timer
                timer.cancel();//处理请求超时时要做的操作break;}};};

每天进步一点点!

Android网络请求超时处理相关推荐

  1. Android -- 网络请求

    一. HttpURLConnection 二. HttpClient 三.Volley 四.OkHttp 五. Retrofit ----------------------------------- ...

  2. 简单快速处理网络请求超时的方法

    最近在调试联网操作的时候碰到网络请求超时的问题,以下是简单快速处理网络超时的方法: 使用android提供的工具类AsyncTask类,此类提供了一个AsyncTask.execute().get(t ...

  3. HttpInterceptor 拦截器 - 网络请求超时与重试的简单实现

    ... 拦截器在Angular项目中其实有着十分重要的地位,拦截器可以统一对 HTTP 请求进行拦截处理,我们可以在每个请求体或者响应后对应的流添加一系列动作或者处理数据,再返回给使用者调用. 每个 ...

  4. okhttp的应用详解与源码解析--android网络请求框架发展史

    乘5G之势,借物联网之风,Android未来亦可期,Android优势在于开放,手机.平板.车载设备.智能家居等都是Android的舞台,Google不倒,Android不灭,本专栏的同步视频教程已经 ...

  5. 计算机网络中请求超时是什么意思,网络请求超时怎么解决

    我们知道不少朋友在上网的时候,会遇到网络请求超时的情况,那造成网络请求超时的原因是什么呢?网络请求超时就是在程序默认的等待时间内没有得到服务器的响应.跟着小编一起来看看请求超时解决方法. 网络请求超时 ...

  6. Android网络请求框架之Retrofit(二)

    前面一篇文章介绍了Retrofit的基本用法,没有看过的童鞋可以移步:Android网络请求框架之Retrofit(一),现在我们来继续介绍Retrofit配合RxJava.RxAndroid的用法. ...

  7. app显示服务器连接超时,APP网络请求超时反馈设计与思考

    最近我负责了一个网络请求超时的反馈设计,借此机会我也顺便通过此文记录了一下整个思考过程,整理一下自己的思路. 当我们在使用APP的时候,偶尔会碰到网络状态不好的情况.那么对于网络状态不好的情况有哪些分 ...

  8. Android 网络请求详解

    我们知道大多数的 Android 应用程序都是通过和服务器进行交互来获取数据的.如果使用 HTTP 协议来发送和接收网络数据,就免不了使用 HttpURLConnection 和 HttpClient ...

  9. Android 网络请求HttpURLConnection 和 HttpClient详解

    Android一般通过http协议向服务端接口发送请求,常用有POST和GET传输方式.这种请求通常借助于HttpClient,HttpClient 是 Apache Jakarta Common 下 ...

最新文章

  1. segment fault
  2. Qt Creator的配置
  3. C# 7.0 新特性:本地方法
  4. java cpu_Java High CPU故障排除指南–第1部分
  5. hadoop集群中客户端修改、删除文件失败
  6. Activiti 监听器的配置使用
  7. jframe运行和预览大小不一样_在泉州楼市中12个热门置业板块中,购房竞争压力大小各不一样...
  8. kafka生产者消息分区策略
  9. .Net 中的反射(反射特性) - Part.3 - (转载)
  10. 程序员放弃阿里60w年薪,选到手5k的公务员,坚信公务员后期完胜程序员
  11. 新东方年会节目员工吐槽公司问题 俞敏洪:奖励12万
  12. 冒泡排序C语言代码 时间复杂度
  13. 光盘安装服务器找不到硬盘,安装系统找不到硬盘怎么办实测解决
  14. Java程序崩溃原因分析:错误日志分析及解决(Cannot allocate memory)
  15. tamami来解答国内防辐射服为什么越卖越火
  16. 5个月的精华:Spring/SpringBoot扩展点手册:手册在手,编码无忧:全网独一份 - 第451篇
  17. QQ群互通(QQ_Bot)程序配置教程
  18. 将图像平移到画布中心python_python前端之Photoshop
  19. STM32前言知识总结
  20. 12. 橡皮擦技术博客写作课,第一版收尾篇,写作也要懂点心理学

热门文章

  1. C#事件委托和回调的用法区别
  2. uni-app快速上手
  3. 汇编语言DEBUG程序的使用(留给弱智的自己看吧)
  4. python语音对话查询起始路和目的地_精选:语音对话机器人,百行Python代码就能轻松实现...
  5. 关于HAPPY ENDING
  6. 巧用Unity的Animator的动画层(Layer)实现跑动中攻击和受击
  7. 看过小马哥的成就,你们谁敢说自己做过项目?
  8. qq空间个人档html代码,qq空间个人档签名-qq个性签名大全
  9. 死亡日志nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;——黄妮超
  10. caffe学习(9)LeNet在Caffe上的使用