我有功能 getCoordinates()
要获取位置,如下所示:
public void getCoordinates(FusedLocationProviderClient fusedLocationProviderClient){
Task<Location> lastLocation = fusedLocationProviderClient.getLastLocation();
lastLocation.addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
lat = location.getLatitude() + "" ;
lon = location.getLongitude() + "";
}
}
});
}
打过电话之后 getCoordinates()
我需要调用函数 getCityName()
,它使用上一个函数中的坐标。
但由于第二个函数在第一个函数完成任务之前启动,所以我的程序不能正常工作。
怎么可能等呢 addOnSuccessListener
完成并完成第一个函数,所以值总是初始化的?
2条答案
按热度按时间wsewodh21#
只需在回调中调用函数:
6tqwzwtp2#
尝试在onsuccess方法中调用第二个方法getcityname()。