android 方法超时,android socket.io中的发出或确认超时处理?

套接字发出超时确认

我的

AckWithTimeOut

带有实现的自定义超时类

Ack

接口

public class AckWithTimeOut implements Ack {

private Timer timer;

private long timeOut = 0;

private boolean called = false;

public AckWithTimeOut() {

}

public AckWithTimeOut(long timeout_after) {

if (timeout_after <= 0)

return;

this.timeOut = timeout_after;

startTimer();

}

public void startTimer() {

timer = new Timer();

timer.schedule(new TimerTask() {

@Override

public void run() {

callback("No Ack");

}

}, timeOut);

}

public void resetTimer() {

if (timer != null) {

timer.cancel();

startTimer();

}

}

public void cancelTimer() {

if (timer != null)

timer.cancel();

}

void callback(Object... args) {

if (called) return;

called = true;

cancelTimer();

call(args);

}

@Override

public void call(Object... args) {

}

}

添加

确认超时

在套接字中发出侦听器

mSocket.emit("socketChangeDeviceAck", obj, new AckWithTimeOut(5000) {

@Override

public void call(Object... args) {

if(args!=null){

if(args[0].toString().equalsIgnoreCase("No Ack")){

Log.d("ACK_SOCKET","AckWithTimeOut : "+ args[0].toString());

}else if(args[0].toString().equalsIgnoreCase("true")){

cancelTimer(); //cancel timer if emit ACK return true

Log.d("ACK_SOCKET","AckWithTimeOut : "+ args[0].toString());

}

}

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值