2
我使用Google Distance Matrix API來計算不同經緯度之間的距離。我呼籲各自的API低於DistanceMatrix API的回調函數
public void computeDistanceAndTime()
{
try
{
DistanceMatrixApiRequest req = DistanceMatrixApi.newRequest(Context.getContext()).origins(src)
.destinations(dst).mode(TravelMode.WALKING);
DistanceMatrix matrix = req.await();
}
catch (OverQueryLimitException o)
{
System.out.println(o.getMessage());
}
catch (Exception e) {
e.printStackTrace();
}
}
提到其實我想設置使用setCallback
功能DistanceMatrixApiRequest
回調。所以我假設,而捕捉excepetion回調會被調用,並能避免
com.google.maps.internal.OkHttpPendingResult從谷歌重試
例外。 現在我不知道如何設置回調像
- 回撥的簽名是什麼?
- 我們是否需要繼承任何類來設置回調
- 該函數的參數是什麼?
- 我假設在調用await函數之前需要調用,我是否正確?
我能看到的天氣預報一個例子像下面,
req.setCallback(new PendingResult.Callback<GeocodingResult[]>() {
@Override
public void onResult(GeocodingResult[] result) {
// Handle successful request.
}
@Override
public void onFailure(Throwable e) {
// Handle error.
}
});
即使我跟隨在距離矩陣相似的方式我不是全成。
req.setCallback(new PendingResult.Callback<DistanceMatrix[]>() {
@Override
public void onResult(DistanceMatrix[] result) {
// Handle successful request.
}
@Override
public void onFailure(Throwable e) {
System.out.println("There is a failure in Distance function");
}
});
感謝佈雷特的詳細解釋。 – Sunny
請將我的答案標記爲已接受。謝謝! – Brett
Brett,我在上面提到的類似的行中寫了這個函數,但是不能在onFailure函數中獲得回調。所以我使用OverQueryLimitException來捕獲這個異常。 – Sunny