2011-03-29 4 views
1

백그라운드에서 실행될 서비스를 만들고 위치가 변경되거나 사용자가 특정 위치에있을 때 활동을 알리려고합니다.서비스에서 위치 객체를 액티비티의 핸들러로 전달

나는 아직도 안드로이드 프로그래밍을 배우고 있으며, 어떻게 활동에 Location 객체를 전달할 수 있는지 이해하지 못해서 조금 갇혀있다. 여기처럼 내 코드는 모습입니다 : 내가 적절하게 캐스팅하지 제외하고 첫눈에 문제가 표시되지

public class MyActivity extends Activity { 
... 
@Override 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
startService(new Intent(MyActivity.this,LocationService.class)); 
} 
...  
Handler handler = new Handler() { 
     public void handleMessage(Message msg) { 
      Location loca=msg.obj;   //I cannot do this,or can I??  
       float lat = (float) (loca.getLatitude()); 
       } 
      }; 
} 

public class LocationService extends Service { 
... 




public void updateLocation(Location loc) {     
      Message msg = Message.obtain(); 
      msg.obj = loc;  
      messageHandler.sendMessage(msg);  
     }  
}  

답변

2

, 이것을 시도 ..

Location loca = (Location)msg.obj; 

을 당신은 할 수 있습니다 캐스팅하지 않고 수퍼 클래스를 서브 클래스에 할당하면 다른 방향으로 갈 수 있습니다.

관련 문제