点击、滑动、点击home键之后获取一次ui节点
parent
5bcb914139
commit
e38f18a050
|
@ -24,7 +24,11 @@ public class GetNodeTreeThread extends Thread {
|
|||
|
||||
private CmdRequest request;
|
||||
|
||||
private boolean keepPushNode = false;
|
||||
private boolean keepPushNode = true; //前端是否打开了获取ui节点
|
||||
|
||||
private boolean gettingNode = false; //正在获取ui树
|
||||
|
||||
private boolean longTimeGetNode = false; //是否长时间没有点击等操作,一直获取
|
||||
|
||||
private final Object lock = new Object();
|
||||
|
||||
|
@ -41,29 +45,39 @@ public class GetNodeTreeThread extends Thread {
|
|||
public void run() {
|
||||
logger.info("开始获取设备【{}】的节点............................", deviceId);
|
||||
while (!isInterrupted()) {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
interrupt();
|
||||
break;
|
||||
}
|
||||
try {
|
||||
IosDeviceInitThread iosInitThread = IOSDeviceManager.getInstance().getIosInitThread(deviceId);
|
||||
if (null == iosInitThread || iosInitThread.isInterrupted() || !iosInitThread.isAlive()) {
|
||||
logger.debug("设备【{}】掉线了,等一下,不要急........................", deviceId);
|
||||
continue;
|
||||
if (keepPushNode) {
|
||||
try {
|
||||
gettingNode = true; //正在获取uiNode
|
||||
IosDeviceInitThread iosInitThread = IOSDeviceManager.getInstance().getIosInitThread(deviceId);
|
||||
if (null == iosInitThread || iosInitThread.isInterrupted() || !iosInitThread.isAlive()) {
|
||||
logger.debug("设备【{}】掉线了,等一下,不要急........................", deviceId);
|
||||
break;
|
||||
}
|
||||
UiNodeData uiNodeData = iosInitThread.getNkAgent().uiTreeNode();
|
||||
logger.debug("获取结束,nodeData空:{}", uiNodeData == null);
|
||||
gettingNode = false; //uiNode获取完毕
|
||||
SessionUtils.sendContinuousData(session, request, uiNodeData, "获取节点树成功");
|
||||
} catch (IllegalStateException e) {
|
||||
logger.warn("webSession已经关闭",e);
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
logger.warn("设备【{}】获取节点出了点问题,但是不影响,继续", deviceId, e);
|
||||
}
|
||||
logger.debug("开始获取......");
|
||||
UiNodeData uiNodeData = iosInitThread.getNkAgent().uiTreeNode();
|
||||
logger.debug("获取结束,nodeData空:{}", uiNodeData == null);
|
||||
SessionUtils.sendContinuousData(session, request, uiNodeData, "获取节点树成功");
|
||||
} catch (IllegalStateException e) {
|
||||
logger.warn("webSession已经关闭",e);
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
logger.warn("设备【{}】获取节点出了点问题,但是不影响,继续", deviceId, e);
|
||||
}
|
||||
if (!keepPushNode) {
|
||||
synchronized (lock) {
|
||||
logger.warn("设备【{}】等待下一次获取node节点.....................", deviceId);
|
||||
try {
|
||||
if (longTimeGetNode) {
|
||||
lock.wait(5*1000);
|
||||
} else {
|
||||
lock.wait(2*1000);
|
||||
longTimeGetNode = true;
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
synchronized (lock) {
|
||||
logger.warn("设备【{}】等待获取node节点.....................", deviceId);
|
||||
try {
|
||||
|
@ -96,6 +110,8 @@ public class GetNodeTreeThread extends Thread {
|
|||
public void startGetNodeTree(CmdRequest request) {
|
||||
this.request = request;
|
||||
this.keepPushNode = true;
|
||||
this.gettingNode = false;
|
||||
this.longTimeGetNode = false;
|
||||
synchronized (lock) {
|
||||
logger.debug("设备【{}】开始获取节点树...................", deviceId);
|
||||
lock.notify();
|
||||
|
@ -106,4 +122,20 @@ public class GetNodeTreeThread extends Thread {
|
|||
public void exitGetNodeTree() {
|
||||
interrupt();
|
||||
}
|
||||
|
||||
public void getOnceNodeTree() {
|
||||
longTimeGetNode = false;
|
||||
if (keepPushNode) {
|
||||
if (gettingNode) {
|
||||
logger.warn("设备【{}】正在获取uiNode.............", deviceId);
|
||||
} else {
|
||||
synchronized (lock) {
|
||||
logger.debug("设备【{}】操作了,获取一次节点树...................", deviceId);
|
||||
lock.notify();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.warn("设备【{}】前端已经关闭了uiNode,无需获取.............", deviceId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -615,6 +615,10 @@ public class IosWindowsAndLinuxMessageHandlerThread extends AbstractIosMessageHa
|
|||
SessionUtils.sendFailureMessage(session, request, "热键[" + key + "]不存在");
|
||||
return;
|
||||
}
|
||||
if (null != nodeTreeThread && nodeTreeThread.isAlive()) {
|
||||
logger.debug("手机【{}】操作了一次,准备获取node节点.................", phoneEntity.getUdid());
|
||||
nodeTreeThread.getOnceNodeTree();
|
||||
}
|
||||
SessionUtils.sendSuccessData(session, request, null, "热键处理成功");
|
||||
}
|
||||
|
||||
|
@ -654,6 +658,10 @@ public class IosWindowsAndLinuxMessageHandlerThread extends AbstractIosMessageHa
|
|||
handleWatch.reset();
|
||||
}
|
||||
logger.debug("抬起实际位置x:{},y:{}", point.getX(), point.getY());
|
||||
if (null != nodeTreeThread && nodeTreeThread.isAlive()) {
|
||||
logger.debug("手机【{}】操作了一次,准备获取node节点.................", phoneEntity.getUdid());
|
||||
nodeTreeThread.getOnceNodeTree();
|
||||
}
|
||||
SessionUtils.sendSuccessData(session, request, null, "抬起成功");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue