마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Multicast 오류 질문입니다.

0 추천

오류는 다음과 같고.. 앱을 실행하고나서 텍스트뷰를 불러오고 난 뒤 검정색화면으로 되면서 이런오류가 떳습니다. 

어떤 오류인지는 잘 모르겠네요.. 이렇게만 쓰고 알려달라는건 염치 없는건 알고 있지만 이렇게 뿐 못쓰는점 양해부탁드립니다..고수님들의 조언 좀 주시면 감사하겠습니다.

-----activity부분-----

public class Layout extends Activity {
	
	    Vector<String> latdata = new Vector<String>();
	
	    Vector<String> londata = new Vector<String>();
	public static TextView gps=null; 
	public static TextView gps1=null; 
	public static Button Map=null;  
    UDP UDPdata = new UDP();//UDP의 데이터들을 뽑아 오는 클래스 선언
	@Override 
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_xmlcourseinfo);
		 gps = (TextView) findViewById(R.id.gpsdata);
		 gps1 = (TextView) findViewById(R.id.gpsdataa);
		                    
while(true){
            
            try {
                Thread.sleep(1000); //1.0초마다 실행
                if(UDPdata.flag == true){
                    
                	latdata = UDPdata.lat;
                    londata = UDPdata.lon;
                   /* if(course.flag1 ==true)
                    	Contentsvec = course.Contentsvec;*/
                    gps.setText(latdata.firstElement());
                    System.out.println(latdata.firstElement());
                    gps1.setText(londata.firstElement());
                    System.out.println(londata.firstElement());
                    
                    break; //반복문 종료
                }
            } catch (Exception e) {
            }    
        }//while-------
}  
}




-----------Multicast부분-----------------------------------------
@TargetApi(Build.VERSION_CODES.KITKAT)
public class UDP extends Activity {
	 
	
	    Vector<String> lat = new Vector<String>();
	
	    Vector<String> lon = new Vector<String>();
	    
	public static TextView gps=null; 
	public static TextView gps1=null; 
	String stateInfo="", stateInfo1="";            //JSON에서 읽어드려서 저장할 변수
    boolean flag=false; //제대로 데이터가 읽어졌는지를 판단해주는 변수
   public void main(final String[] args) throws IOException {
		 MulticastSocket socket = new MulticastSocket(1235);
			InetAddress address= InetAddress.getByName("230.0.0.1");
			//서버아이피가 아니라 서버가 데이터를 내려주는 아이피로서 이 아이피에 접속하여 데이터를 가져감
			socket.joinGroup(address);
			DatagramPacket packet = null;
			for(int i=0; i<3;i++){
				byte[] buffer = new byte[200];
				packet = new DatagramPacket(buffer, buffer.length);
				socket.receive(packet); //packet 데이터를 받는 부분
				System.out.println(packet);
				DatagramPacket JsonData1 = packet;  // JsonData1 에 packet 데이터 저장
				try {
					JSONArray jsonArray = new JSONArray(JsonData1);
					for(int r = 0 ; r<jsonArray.length() ; r++){
						JSONObject json = jsonArray.getJSONObject(r);
						stateInfo+="latitude: "+json.getString("latitude")+"\n"; //위도 값 파싱
	                    stateInfo1+="Longitude: "+json.getString("longitude")+"\n"; // 경도 값 파싱
	                    lat.add(stateInfo);  
                        lon.add(stateInfo1);
                        System.out.println(stateInfo);
                        System.out.println(stateInfo1);
					}
				//	flag=true; //true : 모든 데이터가 저장되었다면.지정된 파일을 읽고 필요한 데이터를 추출해서 저장 완료된 상태
				} catch (Exception e) {
				}
			}
			socket.leaveGroup(address);
			socket.close();
	 }
}  








 

앱등! (400 포인트) 님이 2015년 4월 14일 질문

1개의 답변

0 추천
while 문을 별도의 쓰레드로 만들어서 작성하세여

MainThread에서 무한 루프를 돌고 있기 때문에 그렇습니다.
Gradler (109,780 포인트) 님이 2015년 4월 14일 답변
...