Handler.post 监听模式处理UDP数据的疑问 原理是 我创建了一个activity,在里面放了一个类,并放了一个线程去监听,如果有数据,处理完,然后清空数据,等待下一次数据。 现在碰到的问题的,我需要1次执行2个command,不知道如何去解决了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我需要1次执行2个command: 这个没明白。 handler.post这个方法也不是线程,是主线程UI执行的,不知道是不是你的代码没贴完。 final UDPHelper uf = new UDPHelper(); final Handler handler2 = new Handler(); Runnable udp = new Runnable() { @Override public void run() { handler.postDelayed(this, 500); if(uf.getDestAddr()!=null&&uf.getCommandbyte()!=null){ try { DatagramSocket sendSocket = uf.getSendSocket() ; sendSocket.send(uf.getSendPacket());//发送 System.out.println("发送完毕---"+uf.getCommandbyte()); sendSocket.receive(uf.getBackPacket());//接收 System.out.println("接收完毕---"+uf.getCommandbyte()); String backcommand = CodeUtil.bytesToHexString(uf.getBackbyte()); System.out.println("methodTag---"+uf.getMethodTag()); /*中间是一些数据处理*/ uf.setCommandbyte(null); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } handler2.post(udp); 有两个问题:(1) handler.postDelayed(this, 500); 为什么不用handler2.postDelayed(udp); (2)handler2.post(udp); 导致整个在主线程UI上,堵塞界面,不ANR才怪呢。楼主修改! 在不同路径下运行android -h 出现不同结果, 对吗? ActivityGroup或者TabActivity如何按返回键回到上一个Activity? android可以在应用层抓取数据包吗? android 日历控件 关于density,关于Android应用对多设备的适应的问题~~ 征集Android面试题<二> 烧写有android系统的tiny6410的串口编程 关于页面跳转不重新创建activity的问题 Android Studio 服务器端response返回多条数据,客户端怎么接收? Android 环境搭建 Android系统app应用耗电量计算方法?
有两个问题:
(1) handler.postDelayed(this, 500); 为什么不用handler2.postDelayed(udp);
(2)handler2.post(udp); 导致整个在主线程UI上,堵塞界面,不ANR才怪呢。楼主修改!