public void onClick(View v){
        switch(v.getId()){
            case R.id.btn_lj://"连接服务器”按钮
                  ur1= et_ip.getText().toString().trim();//获取文本信息.转换成字符串.去掉字符串首尾空格
                  text=et_port.getText().toString().trim();                if (TextUtils.isEmpty(ur1)) {
                    Toast.makeText(this,"Ip地址不能为空",Toast.LENGTH_SHORT).show();
                    return;
                }
                if (TextUtils.isEmpty(text)){
                    Toast.makeText(this,"端口不能为空",Toast.LENGTH_SHORT).show();
                    return;
                }
                 
                if(socket != null && socket.isConnected()){//以此为条件判断,实现连接成功后再点击按钮断开socket连接
                    try{
                        socket.close();
                        socket=null;   //  清空mSocket
                        s_lj.setText("连接");
                        Toast.makeText(MainActivity.this,"连接已关闭",Toast.LENGTH_LONG).show();
                    }
                    catch (IOException e){
                            e.printStackTrace();
                    }

                }                dk=Integer.parseInt(text);//将字符串“text”转换成整数型
                str="";
                new ServerThreadTCP().start();
                break;
          这个程序可以运行,实际接线能控制风扇运转。我的思路是点击“连接服务器”按钮后APP与ESP8266模块建立socket连接,按钮文本变成“断开”(用到handler已实现),在点击这个按钮时就断开与esp8266的socket连接。但是现在问题是连接ok,文本改变ok,就是点解按钮想断开连接时闪退,大神们帮我分析分析,万分感谢!