0

我有一个实现 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() 然后做我的任务?

4

1 回答 1

0

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

我认为您需要将调用移至updateGPStoServer()您的Listener.onLocationChanged方法中;这将实现您正在寻找的“等待”。(另外说明:updateGPStoServer()应该实现创建一个后台线程来对服务器进行更新。但你知道,对吧?:-)

此外,听起来您真的想打电话LocationManager.requestSingleUpdate而不是LocationManager.requestLocationUpdates. 这将消除调用locationManager.removeUpdates(locationListener).

于 2013-04-15T17:28:25.613 回答