안녕하세요..
handler을 이용하여 코드를 다시 짜보았는데요..
아직 제대로 동작을 하지 않습니다...
어디가 잘못인지 지적 부탁드릴께요
Thread th = new Thread(postThread);//데이터 수신을 위한 스레드 생성
th.start();
private Runnable postThread = new Runnable(){
public void run(){
while(true){
handler.post(InputData);
}
}
};
private Runnable InputData = new Runnable() {
public void run(){
String value=null;
try {
Log.d("MyLog", "in thread");
while ((value = reader.readLine()) != null){
Log.d("MyLog", "in while");
status = value; //이 부분에서 status 데이터를 수신.
Log.d("MyLog", "View value : " + status);
controlStatus.setText(status);//데이터가 수신이 되면 텍스트 뷰를 셋팅.
//status = null;
}
}catch(Exception e) {
showToast(" " + "S: Error" + " ");
}
}
};
직접 돌려보고 logcat을 확인해 본 결과...
in thread 까지는 찍히고
in while 부터는 찍히질 않습니다.
즉, while 부분에서 갑자기 액티비티가 정체된 상태로 어떠한 것도 할 수 없는 상태가 돼는데요...
뭐가 잘못된 것인가요?ㅜㅜ




작성하시는 프로그램이 연결지향 소켓통신 프로그램 인것 같은데요... 일단 비연결지향(한번 접속하고 연결종료)으로 테스트 해본 걸로는 ui가 변경이 됩니다. 연결지향 테스트는 서버쪽 테스트 프로그램 작성 시간이 오래 걸릴것 같아서......못 했습니다.
private Runnable postThread = new Runnable(){
public void run(){
String value=null;
try{
while((value = reader.readLine()) != null){
. status = value;
Log.d("MyLog", "View value : " + status);
handler.post(inputData);
}
}catch(Exception e){}
}
};
private Runnable inputData = new Runnable(){
public void run(){
controlStatus.setText(status);//데이터가 수신이 되면 텍스트 뷰를 셋팅. 안됨.ㅠ
}
};