使用Volley在Android中进行异步HTTP请求

时间:2020-05-24 20:34:44

标签: android callback android-volley

我正在尝试创建一种使用Volley进行stringRequest的方法来获取两个LatLng点之间的距离。我使用回调传递值,而不是将其传递给return,因为返回是在onResponse方法之前执行的。 这是我制作StringRequest的方法。

public void makeRequest(LatLng origin, LatLng dest, @Nullable final makeRequestCallbacks callbacks){
    final String url = formUrl(origin,dest);
    RequestQueue queue = Volley.newRequestQueue(this);
    StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                        //edit response 
                   callbacks.onSuccess(response);
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {}
    });
    queue.add(stringRequest);
}

这是我要传递值的方法

    public void findDist(){
    LatLng [] temp = new LatLng[randomNum+2];
    makeRequest(temp[i],temp[j], new makeRequestCallbacks() {
                @Override
                public void onSuccess(@NonNull String value) {
                    //do something with value

                }
            });
    }

这是界面

public interface makeRequestCallbacks {

void onSuccess(@NonNull String value);

}

如果我保持这种状态,则需要在每种方法中使用回调,但这似乎不太有效。还有其他传递值的方法吗?

0 个答案:

没有答案