【问题标题】:BufferedReader getting error android.os.NetworkOnMainThreadExceptionBufferedReader 出现错误 android.os.NetworkOnMainThreadException
【发布时间】:2013-11-13 10:00:43
【问题描述】:

无法从服务器读取响应,出现“android.os.NetworkOnMainThreadException”错误。

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));字符串服务器响应 = in.readLine();

 W/System.err(1212):        android.os.NetworkOnMainThreadException                                                
 W/System.err(1212):    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)       
 W/System.err(1212):    at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:163)                             
 W/System.err(1212):    at libcore.io.IoBridge.recvfrom(IoBridge.java:506)                                     
 W/System.err(1212):    at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)                             
 W/System.err(1212):    at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)                        
 W/System.err(1212):    at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240) 

【问题讨论】:

标签: android


【解决方案1】:

根据android文档,所有网络处理代码不应该放在主线程中。它适用于旧版本而不适用于新版本。所以使用线程或异步任务。

【讨论】:

    【解决方案2】:

    将此代码移动到AsyncTaskThreaddoInBackground 方法,因为您正在从Internet 获取数据并且对Internet 的任何调用都需要在后台线程中完成,而不是在UI 线程上或会报错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      相关资源
      最近更新 更多