- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
再次需要您的帮助:我正在使用 android 的蓝牙聊天示例,并尝试实现一个等待处理程序答复的函数:
public void getOBD2Values() {
Log.d(TAG, "Before");
writeMessage("Hello");
mNastyBusyWait = true;
while(mNastyBusyWait){ //send Thread to sleep
try {
Thread.currentThread().sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Log.d(TAG, "After");
}
线程应该等待,直到处理程序收到答案:
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
String readMessage = new String(readBuf, 0, msg.arg1);
mNastyBusyWait = false; // wake Thread up again
Log.d(TAG, "NOT IN IF :MESSAGE_READ: " + readMessage);
break;
这是一个愚蠢的忙等待方法来运行示例。据我所知,问题是线程等待,但处理程序位于同一个类中,并且从未用于继续...什么是更好的方法或者我该如何解决这个问题?我终于得到蓝牙客户端的答复了!
谢谢。
最佳答案
如果这是“一次性”锁,您可以使用 CountDownLatch
:
// somewhere in init...
private final CountDownLatch latch = new CountDownLatch(1);
// waiting side...
writeMessage("hello");
latch.await();
Log.d(TAG, "After");
// waking side...
readMessage = ...;
latch.countDown();
Log.d(TAG, ...);
但是,如果您想重用锁,则必须使用信号量
。
另一种解决方案是在您有工作要做时使用Executor
和.submit()
一个新任务。
关于java - Android 中使用 BluetoothChat 的多线程 : Wait for answer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22168098/
我想在 Eclipse 中运行应用程序时在我的模拟器中实现蓝牙聊天。请帮助我。 . . 同样,我也想通过模拟器实现在线聊天。是否可以 ?如果是,请给我解决方案。 谢谢。 最佳答案 您可以在记事本中完成
我正在尝试使用 Android BluetoothChat 示例与 ELM327 OBDII 蓝牙加密狗进行通信。我可以毫无问题地连接到设备,从 BluetoothChat 到 ODBII 设备的消息
我已使用 BluetoothChat 示例在我的应用程序中构建蓝牙连接。应用程序正确连接,并正确存储所有配对设备,但未正确报告丢失的连接。 我的手机连接的设备由一 block 小电池供电,并在闲置约
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: getActionBar returns null 完整的 Android 菜鸟。我正在尝试从 Galaxy
好吧,我对为什么在下面标记的行中使用同步有点困惑。 对我来说,只有在代码块可能被多个线程访问的情况下才使用同步,但是该代码只能在其 run 方法中从该线程调用。 mConnectThread 的实例在
我使用 BluetoothChat 示例中的代码从蓝牙秤发送和接收字节数据。秤从设备接收命令,然后发回一个字节数组。{2,198,48,48,48,48,199,3}在我们的通信协议(protocol
我正在开发一个基于 BluetoothChat 示例代码的应用程序。我需要能够将包含十六进制值的字节数组写入输出流。我还需要解析输入流上的字节数组并读取十六进制值。这是我的代码,只是将十六进制值简单地
我目前正在尝试通过 BluetoothChat 示例应用程序与 ELM327 OBDII 蓝牙加密狗进行通信。我可以连接,因为我已经更改了 UUID,但是我只能收到启动命令和提示“>”来发送命令,每当
再次需要您的帮助:我正在使用 android 的蓝牙聊天示例,并尝试实现一个等待处理程序答复的函数: public void getOBD2Values() { Log.d(TAG, "Bef
我从 4 天开始就尝试运行一个小应用程序。我使用 BluetoothChat 的代码只是为了检查 BT 是否启用。如果不是,它应该显示启用对话框。我尝试在装有 Android 2.2 的 HTC Wi
背景 我正在开展一个项目,通过蓝牙(带有 HC-05 模块的 Arduino Uno)将 Android 应用程序与 Arduino 板连接起来。所以我从 Arduino 端开始开发,暂时使用 Pla
我开发了一个与串行端口设备通信的蓝牙应用程序,到目前为止通信(开始连接、数据交换和终止线程)工作正常。 但是,我在 Nexus 4 (Android 4.4.2) 上测试时遇到了一个奇怪的蓝牙连接问题
我只是在测试来自 http://developer.android.com/resources/samples/BluetoothChat/index.html .它在一些 android 手机(当然
我是一名优秀的程序员,十分优秀!