我很张贴类似的问题,我以前的一个遗憾,但我只是不明白这一点。
我一直在使用简单的“ping”例如,我发现在这里 ,只是想补充进度,但没有运气。 我真不明白这是怎么回事。
所以,这工作得很好:
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);
}
我从平输出,myBar显然不是diplayed,因为它是第一个地方看不到的。
如果我删除从我标记为问题(设定进度条能见度可见)行了评论,我根本拿不出从平输出。 我看来,它在某种程度上打乱了我的I / O或东西。 进度条显示和隐藏在年底,但没有输出。
我真的不知道这一点,所以如果你有任何想法,我会很感激的任何帮助。
谢谢!!!