调用onLocationChanged后执行以下任务()

时间:2013-04-15 17:16:33

标签: android locationlistener

我有一个实现LocationListener

的类
public class GetLocation implements LocationListener {

@Override
public void onLocationChanged(Location location) {
    Log.i("GetLocation", "Location changed: " + location.getLatitude()
            + ", " + location.getLongitude());

}

在我的活动中,

final LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    final GetLocation locationListener = new GetLocation();
locationManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, 0, 0, locationListener);

     .....  //Check whether the location is changed

    locationManager.removeUpdates(locationListener);

    updateGPStoServer();

onLocationChanged()被调用一次后,我想做一个上传任务并取消监听器,所以我问我怎么能等待onLocationChanged()然后做我的任务呢?

1 个答案:

答案 0 :(得分:0)

  

onLocationChanged()被调用一次后,我想做一个上传任务   并取消听众,所以我问我怎么能等待   onLocationChanged()然后完成我的任务?

我认为您需要将updateGPStoServer()的呼叫转移到Listener.onLocationChanged方法中;那将实现你正在寻找的“等待”。 (另请注意:updateGPStoServer()应该实现创建一个后台线程来对服务器进行更新。但你知道吗,对吧?: - )

此外,听起来你真的想要拨打LocationManager.requestSingleUpdate而不是LocationManager.requestLocationUpdates。这样就无需拨打locationManager.removeUpdates(locationListener)