在android上导致“java.io.IOException:BufferedReader关闭”的原因是什么?

时间:2013-05-23 09:07:59

标签: java android io bufferedreader

我的申请表中有ANR。基于日志,我发现我的应用程序被信号3杀死。在堆栈跟踪中,我得到了代码信息:

 if (mReceiver != null && mReceiver.isAlive()){
       mReceiver.interrupt();
       mReceiver = null;                
 }
 if (mReader != null) {
      mReader.close();// this line throws exception
      mReader = null;
 }

需要很长时间。 在日志中,我还获得了有关上面标记线引发的异常的信息。

05-17 14:04:48.343  3327  6535 W System.err: java.io.IOException: BufferedReader is closed 
05-17 14:04:48.343  3327  6535 W System.err: at java.io.BufferedReader.checkNotClosed(BufferedReader.java:204)
05-17 14:04:48.343  3327  6535 W System.err: at com.sec.android.app.radio.Receiver.run(Receiver.java:40)

但在http://developer.android.com/reference/java/io/BufferedReader.html#close%28%29 是:

  

如果此阅读器已经关闭,则无法完成任务。

为什么抛出这个异常?

我在http://yatse.leetzone.org/redmine/attachments/258/alogcat.2013-04-05-13-15-17+0100.txt#.UZ3YfNmwf5A

上找到的非常相似的日志

回答以下问题:我将mReader共享给一个线程:mReceiver但是我在整个mReader之前中断了这个线程。

1 个答案:

答案 0 :(得分:0)

  

导致“java.io.IOException:BufferedReader关闭”的原因是什么?

在任何平台上导致它的原因是关闭了BufferedReader或其底层资源,然后继续使用它。