我的应用程序显示来自稳定蓝牙文本输入的数据。
在Android 2.3.4中,如果我关闭套接字,则立即抛出IO异常。在2.2中只是大部分时间。
我试图在调用onStop()时停止读取。然后在onStart()中重新连接。
有没有更好的方法可以杀死在可能适用于所有版本的inputStream读取上挂起的线程?
由于 TomZ
答案 0 :(得分:0)
我尝试中断任务并陷入多种类型的异常,这取决于它在中断时的工作情况以及编译错误,我正在捕获它所说的无法抛出的异常。即使我确实获得了一些工作代码,它仍然存在Froyo(Galaxy S - Vibrant)的可靠性问题。
所以我备份并尝试在具有短暂睡眠的循环中使用InputStream.available,并检查设置为结束读取任务的标志(因此除了睡眠之外,任务从未被暂停)。这适用于各种Android版本。
似乎诀窍是不要从外部停止线程,而是让它检测到退出并自行返回的需要。
看起来有点像kludge,有点轮询读数。但代码现在稳定,手机性能似乎没有受到影响。