)新しいRunnableを((新しいスレッドで私のトーストメッセージを参照してくださいカント。私は接続とdisconection後にメッセージを表示して少し問題を抱えている
私の接続ボタンを押して、取得するために、新しいスレッドで通信を確立するときに私がしようとしていますトーストメッセージ:あなたが接続されていると私は例外でトーストを取得するために接続されていない午前場合も:あなたが接続されていない
は、私は自分のコードの末尾に
runOnUiThread(new Runnable() /*but then It underline*/}).start();
で新しいスレッドを交換しようとしました間違い。開始を削除してアプリを実行すると、サーバーに接続できなくなる。
私は多くのソリューションを試しましたが、どれもうまくいきませんでした。私が助けてくれれば非常に感謝しています。
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
try {
server = serverTxt.getText().toString();
Socket socket = new Socket(server, port);
socket.setSoTimeout(30000);
connected = true;
Toast.makeText(getApplicationContext(), "You are connected",Toast.LENGTH_LONG).show();
//send the message to the server
here = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "You are not connected",Toast.LENGTH_LONG).show();
}
}
}).start();
}
});
フラグメント内でこれを実行しようとしていますか? – Kushan
1)runOnUiThread呼び出し後に.start()が必要ありません。 2)runOnUiThread内でソケットコードを使用しようとするとNetworkOnMainThread例外がスローされます - >トースト部分のみを使用 – Kushan