我有一个允许用户在特定区域使用的应用程序,这意味着我不需要跟踪用户,但是我需要确保接收到的位置是新鲜的(即使需要等待)。
执行此操作的最佳方法是什么?目前正在使用:
getLastLocation()
但有时可以得到先前的位置。
答案 0 :(得分:0)
如果满足位置条件,您可以register a location listener并继续执行代码:
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
if (locationResult == null) {
return;
}
for (Location location : locationResult.getLocations()) {
//if(this is the location) jump to the code which makes the app usable
}
//stay unusable
};
};
获取位置可能需要一些时间。如果要强制使用ui线程直到精确到足够的位置,则强制获取该位置是一个糟糕但可行的想法。