Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我可以为BufferReader设置一个超时吗?_Android - Fatal编程技术网

Android 我可以为BufferReader设置一个超时吗?

Android 我可以为BufferReader设置一个超时吗?,android,Android,我第一次从聊天服务器读取数据时,它是frooz。我发现我的端口号错了,当时天气很冷 新建BufferedReadernew InputStreamReaderconn.getInputStream 有没有一种方法可以让我的程序在出现网络错误时暂停?我想一定有, 完整的方法 void SendMessage() { try { URL url = new URL("http://50.63.66.138:1044/update")

我第一次从聊天服务器读取数据时,它是frooz。我发现我的端口号错了,当时天气很冷 新建BufferedReadernew InputStreamReaderconn.getInputStream

有没有一种方法可以让我的程序在出现网络错误时暂停?我想一定有, 完整的方法

void SendMessage()
        {
            try {


            URL url = new URL("http://50.63.66.138:1044/update");
               System.out.println("make connection");
               URLConnection conn = url.openConnection();
               conn.setDoOutput(true);
               BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));


            //   String line;
               String f=new String("");
               String line=new String();
               while ((line= rd.readLine()  ) != null) {
                 f=f+line;
                 f+="\n";
               }
               mUsers.setText(f);

        } catch (Exception e) {

               System.out.println("exception");
               System.out.println(e.getMessage());
           }

        }
}

首先,我希望您在单独的线程中执行此代码,以便即使在建立连接时,UI线程也能对触摸做出响应。 其次,URLConnection类有两种超时方法:

试着和这些家伙一起玩,也许会有帮助。 如果没有,您可以按照自己的方式: 使用runnable启动线程,该线程尝试建立连接和InputReader。然后等待一些超时,如果线程仍在运行,则尝试中断线程