之前在论坛里面求助了关于监听数据接收的问题,因为第一次做这方面,可能我提的问题太简单了,大神都不愿意回答我,(之前的帖子)晚上翻墙浏览网站发现问题的解决办法,

原文是:最近老板让弄安卓和一块板子通信,现在的情况是我第一次发送数据可以接受到(一些参数的初始化),然后我再发送数据,就接收不到了,数据肯定是发送成功了,只是我的逻辑代码有问题(新手,懂的较少),因为我退出了然后再进入程序数据就接收到了,不知道如何实现线程内的代码一直处于监听状态,我的代码:

Runnable runnable = new Runnable() {

        @Override
public void run() {
// TODO Auto-generated method stub
UsbRequest request = new UsbRequest();
boolean initilzed = request.initialize(conn, endpointIn);
System.out.println(initilzed);
ByteBuffer buffer = ByteBuffer.allocate(38);
request.queue(buffer, 38);
while (initilzed) {
if (conn.requestWait().equals(request)) {
byte[] data = buffer.array();
conn.bulkTransfer(endpointIn, data, 38, 1000);
// System.out.println(data.toString());
final String message = "Read " + data.length + " bytes: \n"
+ HexDump.dumpHexString(data) + "\n\n";
System.out.println(message);
}
}
}
};

现在说下解决办法:其实很简单,就是loop循环里面执行异步任务:

	Runnable runnable = new Runnable() {

		@Override
public void run() {
// TODO Auto-generated method stub
// System.out.println("进入线程了");
while (true) {
synchronized (this) {
UsbRequest request = new UsbRequest();
request.initialize(conn, endpointIn);
ByteBuffer buffer = ByteBuffer.allocate(38);
request.queue(buffer, 38);
if (conn.requestWait().equals(request)) {
byte[] data = buffer.array();
conn.bulkTransfer(endpointIn, data, 38, 1000);
final String message = "Read " + data.length
+ " bytes: \n" + HexDump.dumpHexString(data)
+ "\n\n";
System.out.println(message);
}
} } }
};

高手见谅,权当是自己记录的一点心得,毕竟网上别人关于这方面资料少,具体的例子也没有。

最新文章

  1. SVN部署和使用
  2. redis教程(整理中)
  3. js-Event构造函数,也许你需要
  4. java数据结构
  5. 转:socket通信简介
  6. OpenStack最新版本Folsom架构解析
  7. C++编程练习(15)----“排序算法 之 归并排序“
  8. solr home 目录设置
  9. [原创]Jquery实现表格内容点击隐藏显示内容
  10. php的过滤器功能
  11. 推荐一个利用 python 生成 pptx 分析报告的工具包:reportgen
  12. 873D. Merge Sort
  13. redis 慢日志查询
  14. java进阶系列之装饰器模式
  15. nginx 拦截 swagger 登录
  16. Spring Boot参数校验
  17. Swift 与 C 语言混合编程
  18. 【ElasticSearch】ElasticSearch-索引优化-自定义索引
  19. Git 忽略.idea/workspace.xml文件
  20. 非常有用的15个Linux 服务器监控命令

热门文章

  1. Ubuntu使用crontab 使用举例
  2. 3、Linux下配置Java环境
  3. 4.Windows应急响应:勒索病毒
  4. nginx manager
  5. eigen3.3.3+opencv3.2跑orbslam3数据集出现usleep错误
  6. 微信小程序自学第四课:数据绑定
  7. 微信小程序分列显示数据
  8. Boost Python学习笔记(四)
  9. JS中的参数搜寻机制
  10. cf837E(xjb)