ソケットで読み書きする前にポートの可用性をチェックするアプリケーションを開発しています。次のコードを使用してステータスを確認しています
private boolean isAvailable(String host, int port) {
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(host, port), 1000);
isPortAvailable = socket.isConnected();
} catch (IOException e) {
isPortAvailable = false;
}
return isPortAvailable;
}
この後、私はこのステータスをチェックしていますonClick()
if (isAvailable(ip, Integer.parseInt(portLVR))) {
startActivity(new Intent(getApplicationContext(),ActivityLivingRoom.class));
} else
Toast.makeText(getApplicationContext(),"Connection Error !", Toast.LENGTH_SHORT).show();
しかし、私の問題は、メインスレッドでこのステータスを確認すると、Android が提供するnetworkonMainThradException
ので、バックグラウンドスレッドを使用してこの操作を管理するにはどうすればよいですか?