這是我第一次在堆棧溢出問這裏的問題,所以請耐心等待。 我會盡量保持這個簡短。Java線程似乎無法正常運行
我正在寫一個簡單的客戶端套接字android應用程序。 我要連接的服務器有一個名爲Alice的聊天機器人。 我已經設法連接到服務器,我收到消息「來自愛麗絲的你好」,但隨後線程似乎停止,因爲我沒有收到任何更多的消息。
下面是一些代碼:
@Override
public void run() {
try
{
while (true)
{
String _input = _rd.readLine();
if (_input != null)
{
_field.append("Alice : "+ _input+"\n");
}
else
{
_field.append("null");
}
sleep(50);
}
} catch (IOException e) {
e.printStackTrace();
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
正如你可以看到我已經試圖通過將「空」即使我沒有收到消息來解決我的代碼,但是這既不是我的EditText所示。
當用戶按下按鈕時,我從主Activity類中調用.start()
。
@Override
public void onClick(View arg0) {
setContentView(R.layout.second);
InitiateSecondFrame();
_cs = new ClientSocket();
String _check = _cs.EstablishConnection(_host.getText().toString(),
Integer.parseInt(_port.getText().toString()),
(EditText)findViewById(R.id.historyField));
_cs.start();
Toast.makeText(getApplicationContext(), _check, 100).show();
SaveHostPort(_host.getText().toString(), _port.getText().toString());
}
});
ClientSocket
類被Thread擴展並實現了Runnable,我也試過只是擴展或實現。 我根本沒有收到任何錯誤消息。 我希望我提供的信息足以讓你意識到發生了什麼問題。 記住我是多線程和套接字的新手,所以我可能錯過了一些基本的東西。
我明白現在發生了什麼,感謝您的幫助! – Orujimaru