ソケットを介して画像を送信したいのですが、プログレスバーに送信プロセスが表示されている必要があり、画像の送信中に更新する必要がありますが、このコードを試したときにプログレスバーが表示されず、画像が送信されています. これを試しましたが、進行状況バーに直接 100 が表示され、プロセスがまだ進行中であり、進行状況バーに 100% が表示されます
int count;
try {
//image send
client = new Socket(ServerIP,4444);
File file = new File(path);
byte[] mybytearray = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
//bis.read(mybytearray, 0, mybytearray.length);
OutputStream os = client.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF(file.getName());
long total = 0;
while ((count = bis.read(mybytearray)) != -1) {
total += count;
publishProgress(""+(int)((total*100)/file.length()));
os.write(mybytearray, 0, mybytearray.length);
//os.write(mybytearray, 0, mybytearray.length);
}
// os.write(mybytearray, 0, mybytearray.length);
// os.write(mybytearray, 0, mybytearray.length);
os.flush();
bis.close();
fis.close();
client.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}