访问接口时会出现访问超时的情况,有时需要增加一个请求超时后的操作。
//region 网络请求超时操作
class MyTimerTask extends TimerTask {
@Override
public void run() {
handler.sendEmptyMessage(5000);
}
}
private void checkTimeOut(){
try{
timer = new Timer();
task = new MyTimerTask();
timer.schedule(task, 1000);
}catch(Exception e){
Log.e("timer", e.getMessage());
}
}
Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch(msg.what){
case 5000:
//关掉timer
timer.cancel();
//处理请求超时时要做的操作
break;
}
};
};
//endregion
具体使用:
将checkTimeout()函数放在网络请求的前面即可。
public void change(){
checkTimeOut();//判断请求超时
//发送Http请求的代码
}