android 如何停止处于I/O状态的线程?

我又一个线程,读数据的线程,线程执行到这句话就会阻塞

 Log.e("info", "****************正 在 读 取****************");
                    size = mInputStream.read(buffer);

但是我想在activity退出的时候结束掉这个线程。
网上说不建议使用.stop来结束线程。我就用了interrupt,但是没有没有抛出中断的异常。
我又让哪个Thread 实现了InterruptibleChannel接口,也没有用啊。
这是actiity 的onDestroy的方法:

     /**
     * activity销毁的时候关闭串口
     */
    @Override
    protected void onDestroy() {
        //mReadThread就是读数数据的线程
        if (mReadThread != null) {
            canRead = false;
            mReadThread.interrupt();
        }
        //mInputStream就是读取数据的流
        if (mInputStream!=null){
            try {
                mInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        handler.removeCallbacksAndMessages(null);
        handler = null;

        closeSerialPort();
        super.onDestroy();
    }
查看全部
qq_35071078
下课睡觉
2017/05/22 07:22
  • java
  • 线程
  • android
  • i/o
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

4个回复