간단히 말해, 아래의 "str"변수를보십시오. 그 출력은 PING 조작의 전체 결과입니다.Android (Java)에서 ping 결과를 라인 단위로 어떻게 표시합니까?
reader = new BufferedReader(new InputStreamReader (process.getInputStream()));
int j;
char[] buffer = new char[240];
StringBuffer output = new StringBuffer();
while ((j = reader.read(buffer)) > 0){
output.append(buffer, 0, j);}
str = output.toString();
Log.d("1:STR VALUE", str);
publishProgress(" "+str+" ");
"str"변수는 조작의 전체 결과, 즉 IP 주소로 3 회 ping을 포함합니다. 그러나,이 비동기 작업에서 하나씩 Android 활동에 대해 한 줄씩 핑을 표시하려고합니다.
또한 누군가 내가 사용하고있는 버퍼 어레이의 길이 (예 : 240 대 120)의 성능 제한을 설명 할 수 있다면 좋을 것입니다.
EDIT -1- (주석에 응답)
11-28 18:11:17.404 10769-10815/com.example1 D/1:STR VALUE: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=8.83 ms
11-28 18:11:17.600 10769-10815/com.example1 D/1:STR VALUE: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=8.83 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=2.05 ms
11-28 18:11:17.801 10769-10815/com.example1 D/1:STR VALUE: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=8.83 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=2.05 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=3.38 ms
--- 192.168.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 403ms
rtt min/avg/max/mdev = 2.059/4.758/8.835/2.933 ms
는 STR 값 while 루프 내부에 발행 될 때, 출력의 반복이 발생 있습니다.
전체 AsyncTask 코드를 게시 해주세요. – foxanna
안녕하세요, "프로세스"는 ping 결과를 가져오고 "str"변수가 onProgressUpdate (String ... values) 메소드를 통해 기본 UI에 게시되는 런타임 프로세스입니다. 특정 이유로 전체 코드를 게시 할 수 없습니다. – Zac1
신경 쓰지 마라. 왜'publ'Progress (str);을'while' 루프 내에서 ping amount만큼 사용하지 않는가? 그리고'onProgressUpdate' 핸들러 안에서 Activity에 라인을 표시하십시오. – foxanna