2011-05-16 4 views
2

현재 위치를 가져 오는 중 어디에 응용 프로그램을 개발하고 있습니다. 그러나 새 스레드를 만들었지 만 "getLocation() 메서드를 이벤트 스레드에서 호출 할 수 없습니다."라는 오류가 발생합니다. 누구든지 나를 도울 수 있습니까?"이벤트 스레드에서 getLocation() 메서드를 호출 할 수 없습니다"

여기에 내 코드

Thread t = new MyThread(); 
t.run(); 

이며, 여기 MyThread 클래스의 실행 기능입니다 :

try 
    { 

     Criteria cr = new Criteria(); 
     cr.setHorizontalAccuracy(500); 
     LocationProvider lp = LocationProvider.getInstance(cr); 
     Location l = lp.getLocation(60); 
     Coordinates c = l.getQualifiedCoordinates(); 
     if (c != null) 
     { 
      double longitude = c.getLongitude(); 
      double latitude = c.getLatitude(); 
      Dialog.alert("latitude:"+latitude); 
      Dialog.alert("longitude:"+longitude); 
     } 
    }catch(Exception e){ 
     Dialog.alert(e.getMessage()); 

    } 

답변

3

당신은 run() 메소드를 호출하여 스레드를 시작하지 않습니다. start() 메서드를 호출하여 스레드를 시작합니다.

+0

비록 start() 메서드를 사용하더라도 동일한 오류가 발생합니다. 어떤 생각 ?? –

+0

몇 가지 코드를 보여줄 수 있습니까? – Richard

관련 문제