以前の質問と同様の質問を投稿して申し訳ありませんが、これを理解できません。
ここで見つけた単純な「ping」の例を使用していて、ProgressBar を追加したかっただけですが、うまくいきませんでした。何が起こっているのか本当にわかりません。
したがって、これは正常に機能します。
protected void onPreExecute() {
sb = new StringBuilder();
mPOut = new PipedOutputStream();
try {
mPIn = new PipedInputStream(mPOut);
mReader = new LineNumberReader(new InputStreamReader(mPIn));
} catch (IOException e) {
cancel(true);
}
//myBar.setVisibility(View.VISIBLE); -> PROBLEM!!!
}
protected Object doInBackground(Object... arg0) {
try {
process = Runtime.getRuntime().exec("ping -c 4 " + ipadd);
InputStream in = process.getInputStream();
OutputStream out = process.getOutputStream();
byte[] buffer = new byte[1024];
int count;
while ((count = in.read(buffer)) != -1) {
mPOut.write(buffer, 0, count);
String bs= new String(buffer);
publishProgress();
}
in.close();
out.close();
mPOut.close();
mPIn.close();
} catch (IOException e) {
}
return null;
}
protected void onPostExecute(Object result) {
myBar.setVisibility(View.INVISIBLE);
tv.setText(sb);
System.out.println(sb);
}
ping から出力を取得します。そもそも myBar は表示されないため、明らかに表示されません。
問題としてマークした行からコメントを削除すると (プログレス バーの可視性を表示に設定)、ping から何も出力されません。どういうわけか私のI / Oか何かを台無しにしているようです。ProgressBar は表示され、最後に非表示になりますが、出力はありません。
どうしても分からないので、何かお分かりになる方がいらっしゃいましたら、よろしくお願いします。
ありがとう!!!