안드로이드 개발 질문/답변
(글 수 45,052)
프로요 갤S 에서 테스트 중입니다.
http 연결이 될 때는 잘 실행되지만
http 서버에 접속할 수 없는 경우에는 프로그램이 죽는 황당한 상황이 발생하는군요.
Exception catch 부분에 들어가지도 않고 그냥 죽어 버립니다.
프로요 2.2로 업그레이드를 한 폰에서도 이런 현상이 나타나니 난감하네요...
public void notifyPhoneOn(String ip, String msg)
{
log("try url ip="+ip); // 잘 찍힘
int port = 9091;
try {
URL url = new URL("http://" + ip + ":" + port+"/notify");
URLConnection con = url.openConnection();
String type = con.getContentType();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String s = null;
while ((s = in.readLine()) != null)
{
}
in.close();
log(ip+" notified ok"); // 연결 성공시에는 잘 찍힘
}
catch (ConnectException ex)
{
log("ConnectException ip="+ip+" ,msg="+msg+" ,"+ex); // 연결실패에도 안찍히고 프로그램이 그냥 죽음
}
catch (Exception ex) {
log("Exception ip="+ip+" ,msg="+msg+" ,"+ex);
}
catch (Throwable t)
{
log("Throwable ip="+ip+" ,msg="+msg+" ,"+t);
}
}
http 연결이 될 때는 잘 실행되지만
http 서버에 접속할 수 없는 경우에는 프로그램이 죽는 황당한 상황이 발생하는군요.
Exception catch 부분에 들어가지도 않고 그냥 죽어 버립니다.
프로요 2.2로 업그레이드를 한 폰에서도 이런 현상이 나타나니 난감하네요...
public void notifyPhoneOn(String ip, String msg)
{
log("try url ip="+ip); // 잘 찍힘
int port = 9091;
try {
URL url = new URL("http://" + ip + ":" + port+"/notify");
URLConnection con = url.openConnection();
String type = con.getContentType();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String s = null;
while ((s = in.readLine()) != null)
{
}
in.close();
log(ip+" notified ok"); // 연결 성공시에는 잘 찍힘
}
catch (ConnectException ex)
{
log("ConnectException ip="+ip+" ,msg="+msg+" ,"+ex); // 연결실패에도 안찍히고 프로그램이 그냥 죽음
}
catch (Exception ex) {
log("Exception ip="+ip+" ,msg="+msg+" ,"+ex);
}
catch (Throwable t)
{
log("Throwable ip="+ip+" ,msg="+msg+" ,"+t);
}
}
2010.11.18 17:26:18
logcat은 안써서 모르겠고요. NetBeans를 사용합니다. 실제로 폰에서 실행해보면 반드시 폰의 프로그램이 죽는 것을 여러 번 확인했습니다.
피해가는 방법은 Socket으로 직접 사용하면 죽지는 않았습니다.
일반적으로 URLConnection은 여러 곳에서 사용할텐데 갤럭시S의 달빅에서 프로그램이 그냥 확 내려가버리는 심각한 버그가 있는 것으로 보이네요. URLConnection도 내부적으로는 Socket을 사용할텐데 암튼 결과적으로는 갤럭시S 프로요에서 실행시켜본 결과 달빅VM이 그냥 죽어버리는 문제가 있었습니다. 다른 분들도 참고로 하시기 바랍니다.
피해가는 방법은 Socket으로 직접 사용하면 죽지는 않았습니다.
일반적으로 URLConnection은 여러 곳에서 사용할텐데 갤럭시S의 달빅에서 프로그램이 그냥 확 내려가버리는 심각한 버그가 있는 것으로 보이네요. URLConnection도 내부적으로는 Socket을 사용할텐데 암튼 결과적으로는 갤럭시S 프로요에서 실행시켜본 결과 달빅VM이 그냥 죽어버리는 문제가 있었습니다. 다른 분들도 참고로 하시기 바랍니다.