我有一个实现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()然后做我的任务呢?
答案 0 :(得分:0)
onLocationChanged()被调用一次后,我想做一个上传任务 并取消听众,所以我问我怎么能等待 onLocationChanged()然后完成我的任务?
我认为您需要将updateGPStoServer()
的呼叫转移到Listener.onLocationChanged
方法中;那将实现你正在寻找的“等待”。 (另请注意:updateGPStoServer()
应该实现创建一个后台线程来对服务器进行更新。但你知道吗,对吧?: - )
此外,听起来你真的想要拨打LocationManager.requestSingleUpdate
而不是LocationManager.requestLocationUpdates
。这样就无需拨打locationManager.removeUpdates(locationListener)
。