ソケットを使用してサーバー接続をテストするためのコードを含むプログレスバーをアクティビティに表示したいと思います。サーバーにデータを送信するときにのみプログレスバーを表示したい。サーバーから応答を受け取るとすぐに、進行状況が閉じられ、「サーバーがビジーです」というメッセージが表示されたアラートボックスが表示されます。しかし、私の画面では、サーバーから応答を受け取った後、プログレスバーが表示されます。これが私のコードです。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mProgress = (ProgressBar) findViewById(R.id.progressBar1);
mProgress.setProgress(0);
checkdb();
}
private void checkdb() {
String message = "";
try {
serverIpAddress = InetAddress.getByName("192.168.1.133");
Log.d("TCP", "C: Connecting...");
socketObject = new Socket(serverIpAddress, 8221);
String str = "hi";
try {
Log.d("TCP", "C: Sending: '" + str + "'");
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socketObject.getOutputStream())), true);
out.println(str);
inputStream = socketObject.getInputStream();
inputDataStream = new DataInputStream(inputStream);
message = inputDataStream.readUTF();
Log.d("TCP", "C: Reply: '" + message + "'");
}
catch(IOException e)
{
Log.e("TCP", "S: Error", e);
}catch (Exception e) {
Log.e("TCP", "S: Error", e);
}
finally {
socketObject.close();
Log.e("TCP", "S: Error");
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
Log.e("TCP", "C: UnknownHostException", e);
e.printStackTrace();
}
catch(IOException e)
{
Log.e("TCP", "S: Error:", e);
//Code to show Alert box with message "IOException"
}
}
したがって、サーバーから応答を受け取る前にプログレスバーを表示するにはどうすればよいですか。返信があった場合は、プログレスバーを閉じる必要があります。誰か助けてください...