Skip to content

Commit 2a7a1c6

Browse files
author
ctj
committed
优化ping机制
1 parent d0c5c42 commit 2a7a1c6

File tree

1 file changed

+21
-14
lines changed
  • base_iotutils/src/main/java/com/face_chtj/base_iotutils/network

1 file changed

+21
-14
lines changed

base_iotutils/src/main/java/com/face_chtj/base_iotutils/network/NetUtils.java

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public class NetUtils {
7272
/**
7373
* 预计多少秒后刷新dns列表
7474
*/
75-
private static final int TIMERD_DNS_REFRESH = 120;
75+
private static final int TIMERD_DNS_REFRESH = 240;
7676

7777
/**
7878
* 建议自己去ping一个自己的服务地址
@@ -321,24 +321,31 @@ private static String[] getConvertDns() {
321321
* 2小时刷新一次可用的dns列表
322322
*/
323323
public static boolean reloadDnsPing() {
324-
long beforeTime = BaseIotUtils.instance().dnsRefreshTime;
325-
if (beforeTime <= 0) {
326-
//如果没有记录过时间 那么证明第一次加载DNS列表
327-
BaseIotUtils.instance().dnsRefreshTime = System.currentTimeMillis();//记录这一次操作的时间
328-
//如果在通过的列表中 有网络正常通过的那么直接返回true ,因为的重新加载的列表中会对所有的列表做检测
329-
return tryRefreshDns();
330-
} else {
331-
long nowTime = System.currentTimeMillis() / 1000;
332-
long diffNum = nowTime - (beforeTime / 1000);
333-
if (diffNum > TIMERD_DNS_REFRESH) {//大于两小时刷新一次 7200秒等于2小时
334-
KLog.d("reloadDnsList() time >> " + TIMERD_DNS_REFRESH + " diffNum >> " + diffNum);
324+
//先判断本机是否网络API返回正常
325+
if (getNetWorkType() != NETWORK_NO) {
326+
long beforeTime = BaseIotUtils.instance().dnsRefreshTime;
327+
if (beforeTime > 1) {
328+
//如果没有记录过时间 那么证明第一次加载DNS列表
335329
BaseIotUtils.instance().dnsRefreshTime = System.currentTimeMillis();//记录这一次操作的时间
336330
//如果在通过的列表中 有网络正常通过的那么直接返回true ,因为的重新加载的列表中会对所有的列表做检测
337331
return tryRefreshDns();
332+
} else {
333+
long nowTime = System.currentTimeMillis() / 1000;
334+
long diffNum = nowTime - (beforeTime / 1000);
335+
if (diffNum > TIMERD_DNS_REFRESH) {//大于两小时刷新一次 7200秒等于2小时
336+
KLog.d("reloadDnsList() time >> " + TIMERD_DNS_REFRESH + " diffNum >> " + diffNum);
337+
BaseIotUtils.instance().dnsRefreshTime = System.currentTimeMillis();//记录这一次操作的时间
338+
//如果在通过的列表中 有网络正常通过的那么直接返回true ,因为的重新加载的列表中会对所有的列表做检测
339+
return tryRefreshDns();
340+
}
338341
}
342+
//即使在上面经过刷新dns列表的情况下都没有ping那么还有这次
343+
return checkNetWork(TypeDataUtils.getRandomList(getConvertDns(), 3), 1, 1);
344+
} else {
345+
//由于网络出现问题 重置下一次刷新时间
346+
BaseIotUtils.instance().dnsRefreshTime = 0;
347+
return false;
339348
}
340-
//即使在上面经过刷新dns列表的情况下都没有ping那么还有这次
341-
return checkNetWork(TypeDataUtils.getRandomList(getConvertDns(), 3), 1, 1);
342349
}
343350

344351
/**

0 commit comments

Comments
 (0)