如何安全地停止在while循环中使用Socket的线程?

时间:2018-06-11 14:32:45

标签: java android

我有这段代码:

networkEnquirerThread = new Thread(new Runnable() {

            Socket socket = null;
            PrintWriter out = null;
            BufferedReader br = null;
            String response = null;

            @Override
            public void run(){

                try {
                    socket = new Socket("blah blah", 909090);
                    out = new PrintWriter(socket.getOutputStream(), true);
                    br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

                    while(true){
                        try {
                            Thread.sleep(50); 
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }

                        out.println("something");
                        response = br.readLine();

                    }

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });

如何中断此线程并确保套接字在onStop()onDestroy()方法中关闭?我应该使用这种方法http://www.baeldung.com/java-thread-stop吗?同样在该链接中,似乎将AtomicBoolean变量设置为false会引发InterruptedException

0 个答案:

没有答案