
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,就是點解按鈕想斷開連接時閃退,大神們幫我分析分析,萬分感謝!
uj5u.com熱心網友回復:
就一個閃退,你連錯誤日志都不搞上來,靠猜的嗎?uj5u.com熱心網友回復:
socket 本身為空吧, socket.isConnected()就報空指標 你下面捕獲例外是IO例外uj5u.com熱心網友回復:
謝謝大家,”連接”的執行緒程式沒有個其他按鈕公用就ok.已經解決,謝謝??轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/129924.html
標籤:Android
