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());

}

}

}

});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017 Google 开发者大会直播入口

今年&#xff0c;Google 开发者大会再度来袭&#xff01;大会将于 12 月 13 日和 14 日在上海举办&#xff0c;主题涵盖机器学习 (Machine Learning)、Android、移动网络&#xff08;Mobile Web)、TensorFlow、Firebase、云服务 (Cloud)、AR/VR、设计 (Design) 以及更多开发者相…

Oracle sqlldr

一、sqlldr的概述 sqlldr是oracle自带的一个工具&#xff0c;用于导入文本文件的内容到oracle数据库中。 该工具在&#xff1a;\oracle\app\oracle\product\11.2.0\server\bin\sqlldr.exe 二、使用 D:\oracle\app\oracle\product\11.2.0\server\bin\sqlldr.exe useriduser/…

android实现推送方式解决方案,Android实现推送方式解决方案系列教程

Android实现推送方式解决方案系列教程 1-5Android实现推送方式解决方案系列教程总结者&#xff1a;难民 交流Q群: 137824028Android实现推送方式解决方案系列之一--XMPP协议出自&#xff1a;http://doc.docsou.com/thread-1004-1-1.htmlXMPP协议简介XMPP(Extensible Messageing…

日志组件slf4j介绍及配置详解

2019独角兽企业重金招聘Python工程师标准>>> 原文出自 1 基本介绍 每一个Java程序员都知道日志对于任何一个Java应用程序尤其是服务端程序是至关重要的&#xff0c;而很多程序员也已经熟悉各种不同的日志库&#xff0c;如java.util.logging、Apache log4j、logback。…

count(*),count(1),count(0)效率

网上文章很多&#xff0c;今天分别跑了一张2000多万行的表&#xff0c;该表没有主键&#xff0c;索引&#xff0c;约束条件。 结果是&#xff0c;效率差不多

android 转场动画兼容问题,【Android】关于ARouter转场动画的问题

实现从主页跳转到搜索页&#xff0c;再从搜索页回退主页withTransition(int resId,int resId)这个方法两个参数第一个的意思是&#xff0c; A 到 B&#xff0c; B 的入场动画第二个的意思是&#xff0c;A 到 B&#xff0c; A 的出场动画即&#xff0c;入场动画&#xff0c;出场…

Oracle 一些常用函数

ROUND&#xff1a; 如何使用 Oracle Round 函数 (四舍五入) 描述 : 传回一个数值&#xff0c;该数值是按照指定的小数位元数进行四舍五入运算的结果。 SELECT ROUND( number, [ decimal_places ] ) FROM DUAL 参数: number : 欲处理之数值 decimal_places : 四舍五入 , 小数取…

基于github和hexo搭建博客 本地hexo博客搭建

正常都应该讲一讲为什么搭建博客&#xff0c;不过既然您能看见这篇文章&#xff0c;就说明你想搭建一个自己的博客&#xff0c;无论自己记录自己的东西&#xff0c;或是为了显得高大上。那就不废话了&#xff0c;进入正题。 其实教大家搭建博客的文章很多&#xff0c;讲的都不错…

react不同环境不同配置angular_叫雨山斗鸡优势在哪里,环境不同,价值不同

叫雨山斗鸡优势在哪里&#xff0c;环境不同&#xff0c;价值不同 原生态高端食材网站&#xff0c;专注金线莲、散放斗鸡、斗鸡蛋、野生蜂蜜、小耳黑猪肉等云南原生态套餐定制的高端食材供应商。云南叫雨山斗鸡叫雨山斗鸡原生态饲养 叫雨山斗鸡源自于鲁西斗鸡&#xff0c;初代斗…

android studio 布局拖拽,为什么使用android studio不能像老师一样在Design里随意拖动控件...

qq_喷泉_02017-07-25 13:08已采纳xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:layout_height"match_parent"tools:context"co…

Oracle自定义函数(不断更新)

1、将数字转为ip地址&#xff1a;IPAdd_DotNumFormat create or replace FUNCTION IPAdd_DotNumFormat(v_LfValue number)return varchar2 asv_DotNumString varchar2(50);v_flg Integer;v_NewLfValue number;v_tmp Integer;v_P1 Integer;v_P2 Integer;v_P3 Integer;v_P4…

element ui select设置不显示不存在的项_appium—等待时间设置方法

引言&#xff1a;在做UI自动化的过程中&#xff0c;我们有时候为了等待元素的出现&#xff0c;需要加一些等待时间来帮助&#xff0c;但是有时候时间加的过多或者过少&#xff0c;这个没有办法判断&#xff0c;今天就介绍几种等待时间&#xff0c;我们看看那种适合我们 一、强制…

android rn 和webview,RN Webview与Web的通信与调试

React Native Version:0.51RN 在 0.37 版本中加入了WebView功能&#xff0c;所以想要在使用WebView,版本必须>0.37&#xff0c;发送的 message 只能是字符串&#xff0c;所以需要将其他格式的数据转换成字符串&#xff0c;在接收到后再转换回去&#xff0c;其实直接用JSON.s…

数据库完整性检查

为了主动发现数据库侧页损坏&#xff0c;保证数据库逻辑和物理完整性&#xff0c;计划每周六上午6点&#xff0c;针对生产主库上的所有系统和用户数据库执行DBCC CHECKDB&#xff0c;将结果记录到表中。以下为理论依据&#xff1a;SQL Server数据库可以检测出页损坏&#xff0c…

GNU概念

一、GNU的意思 GNU的全称&#xff1a;GNU is not unix&#xff0c;意思是&#xff1a;GNU 不是 unix 问&#xff1a;为什么这样取名&#xff1f; 答&#xff1a;为了打造一个不是unix又类unix的系统 二、GNU的历程 GNU计划是由Richard Stallman 在1984年公开发起的&#x…

Item 13 Minimize the accessibility of classes and members

区分好的模块和不好的模块最重要的因素是看这个模块对于其他模块而言是否隐藏内部数据和其他细节。好的模块会把所有细节隐藏起来&#xff0c;把API和实现隔离开来&#xff0c;模块之间用API通信。这就是information hiding或者封装(encapsulation)。是软件设计基本原则之一。 …

html 物流状态,使用css实现物流进度的样式的实例代码

效果&#xff1a;css样式&#xff1a;ul li {list-style: none;}.package-status {padding: 18px 0 0 0}.package-status .status-list {margin: 0;padding: 0;margin-top: -5px;padding-left: 8px;list-style: none;}.package-status .status-list>li {border-left: 2px so…

GPL概念

一、GPL概念 全称为 General Public License&#xff0c;翻译为通用公共许可&#xff0c;是最著名的开源许可协议。Linux内核就是在GPL许可下发布的&#xff0c;GPL许可是由自由软件基金会Free Software foundation 创建的&#xff0c;由Richard Stallman 和一帮人共同努力发起…

点钞机语音怎么打开_原来微信语音一样能转发? 居然还有人不知道

微信怎么把语音转发给别人&#xff1f;原来这个简单啊&#xff0c;微信作为一款我们最常用的社交工具&#xff0c;无论是生活还是工作过程中&#xff0c;我们都能够用到微信。那么大家知道微信怎么把语音转发给别人吗&#xff1f;有的人肯定就会回答说&#xff1a;"跟转发…